<!DOCTYPE html>
<!-- saved from url=(0038)https://www.jianshu.com/p/5d5497697b0a -->
<html><!--<![endif]--><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  
  <meta http-equiv="X-UA-Compatible" content="IE=Edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable=no">

  <!-- Start of Baidu Transcode -->
  <meta http-equiv="Cache-Control" content="no-siteapp">
  <meta http-equiv="Cache-Control" content="no-transform">
  <meta name="applicable-device" content="pc,mobile">
  <meta name="MobileOptimized" content="width">
  <meta name="HandheldFriendly" content="true">
  <meta name="mobile-agent" content="format=html5;url=https://www.jianshu.com/p/5d5497697b0a">
  <!-- End of Baidu Transcode -->

    <meta name="description" content="本文档为微信小程序商城NideShop项目的安装部署教程，欢迎star NideShop商城api服务：https://github.com/tumobi/nideshop NideShop微信小程序商城： https://github.com/tumobi/nideshop-mini-program NideShop后台管理系统： https://github.com/tumobi/nid...">

  <meta name="360-site-verification" content="604a14b53c6b871206001285921e81d8">
  <meta property="wb:webmaster" content="294ec9de89e7fadb">
  <meta property="qc:admins" content="104102651453316562112116375">
  <meta property="qc:admins" content="11635613706305617">
  <meta property="qc:admins" content="1163561616621163056375">
  <meta name="google-site-verification" content="cV4-qkUJZR6gmFeajx_UyPe47GW9vY6cnCrYtCHYNh4">
  <meta name="google-site-verification" content="HF7lfF8YEGs1qtCE-kPml8Z469e2RHhGajy6JPVy5XI">
  <meta http-equiv="mobile-agent" content="format=html5; url=https://www.jianshu.com/p/5d5497697b0a">

  <!-- Apple -->
  <meta name="apple-mobile-web-app-title" content="简书">

    <!--  Meta for Smart App Banner -->
  <meta name="apple-itunes-app" content="app-id=888237539, app-argument=jianshu://notes/18227670">
  <!-- End -->

  <!--  Meta for Twitter Card -->
  <meta content="summary" property="twitter:card">
  <meta content="@jianshucom" property="twitter:site">
  <meta content="CentOS 7.3 下部署基于 Node.js的微信小程序商城" property="twitter:title">
  <meta content="本文档为微信小程序商城NideShop项目的安装部署教程，欢迎star NideShop商城api服务：https://github.com/tumobi/nideshop ..." property="twitter:description">
  <meta content="https://www.jianshu.com/p/5d5497697b0a" property="twitter:url">
  <!-- End -->

  <!--  Meta for OpenGraph -->
  <meta property="fb:app_id" content="865829053512461">
  <meta property="og:site_name" content="简书">
  <meta property="og:title" content="CentOS 7.3 下部署基于 Node.js的微信小程序商城">
  <meta property="og:type" content="article">
  <meta property="og:url" content="https://www.jianshu.com/p/5d5497697b0a">
  <meta property="og:description" content="本文档为微信小程序商城NideShop项目的安装部署教程，欢迎star NideShop商城api服务：https://github.com/tumobi/nideshop NideShop微信...">
  <!-- End -->

  <!--  Meta for Facebook Applinks -->
  <meta property="al:ios:url" content="jianshu://notes/18227670">
  <meta property="al:ios:app_store_id" content="888237539">
  <meta property="al:ios:app_name" content="简书">

  <meta property="al:android:url" content="jianshu://notes/18227670">
  <meta property="al:android:package" content="com.jianshu.haruki">
  <meta property="al:android:app_name" content="简书">
  <!-- End -->


    <title>CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书</title>

  <meta name="csrf-param" content="authenticity_token">
<meta name="csrf-token" content="ixJVPGz02AHYFsn0dA3XOMnT7TFYfa6dVQ3YBsz3p+sKTLH5WClb4FnVaw6HWj5ty22bwvaP0l7PsYMCdAZLjw==">

  <link rel="stylesheet" media="all" href="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/web-221ec98db5f8f985b66f.css">
  
  <link rel="stylesheet" media="all" href="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/entry-a9201972e0c141d2fe27.css">

  <link href="https://cdn2.jianshu.io/assets/favicons/favicon-e743bfb1821442341c3ab15bdbe804f7ad97676bd07a770ccc9483473aa76f06.ico" rel="shortcut icon" type="image/x-icon">
      <link rel="apple-touch-icon-precomposed" href="https://cdn2.jianshu.io/assets/apple-touch-icons/57-a6f1f1ee62ace44f6dc2f6a08575abd3c3b163288881c78dd8d75247682a4b27.png" sizes="57x57">
      <link rel="apple-touch-icon-precomposed" href="https://cdn2.jianshu.io/assets/apple-touch-icons/72-fb9834bcfce738fd7b9c5e31363e79443e09a81a8e931170b58bc815387c1562.png" sizes="72x72">
      <link rel="apple-touch-icon-precomposed" href="https://cdn2.jianshu.io/assets/apple-touch-icons/76-49d88e539ff2489475d603994988d871219141ecaa0b1a7a9a1914f4fe3182d6.png" sizes="76x76">
      <link rel="apple-touch-icon-precomposed" href="https://cdn2.jianshu.io/assets/apple-touch-icons/114-24252fe693524ed3a9d0905e49bff3cbd0228f25a320aa09053c2ebb4955de97.png" sizes="114x114">
      <link rel="apple-touch-icon-precomposed" href="https://cdn2.jianshu.io/assets/apple-touch-icons/120-1bb7371f5e87f93ce780a5f1a05ff1b176828ee0d1d130e768575918a2e05834.png" sizes="120x120">
      <link rel="apple-touch-icon-precomposed" href="https://cdn2.jianshu.io/assets/apple-touch-icons/152-bf209460fc1c17bfd3e2b84c8e758bc11ca3e570fd411c3bbd84149b97453b99.png" sizes="152x152">

  <!-- Start of 访问统计 -->
    <script src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/push.js.下载"></script><script src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/hm.js.下载"></script><script>
    var _hmt = _hmt || [];
    (function() {
      var hm = document.createElement("script");
      hm.src = "//hm.baidu.com/hm.js?0c0e9d9b1e7d617b3e6842e85b9fb068";
      var s = document.getElementsByTagName("script")[0];
      s.parentNode.insertBefore(hm, s);
    })();
  </script>

  <!-- End of 访问统计 -->
<style type="text/css" abt="234"></style><style type="text/css">fieldset[disabled] .multiselect {
  pointer-events: none;
}

.multiselect__spinner {
  position: absolute;
  right: 1px;
  top: 1px;
  width: 48px;
  height: 35px;
  background: #fff;
  display: block;
}

.multiselect__spinner:after,
.multiselect__spinner:before {
  position: absolute;
  content: "";
  top: 50%;
  left: 50%;
  margin: -8px 0 0 -8px;
  width: 16px;
  height: 16px;
  border-radius: 100%;
  border-color: #41b883 transparent transparent;
  border-style: solid;
  border-width: 2px;
  box-shadow: 0 0 0 1px transparent;
}

.multiselect__spinner:before {
  animation: a 2.4s cubic-bezier(.41,.26,.2,.62);
  animation-iteration-count: infinite;
}

.multiselect__spinner:after {
  animation: a 2.4s cubic-bezier(.51,.09,.21,.8);
  animation-iteration-count: infinite;
}

.multiselect__loading-enter-active,
.multiselect__loading-leave-active {
  transition: opacity .4s ease-in-out;
  opacity: 1;
}

.multiselect__loading-enter,
.multiselect__loading-leave-active {
  opacity: 0;
}

.multiselect,
.multiselect__input,
.multiselect__single {
  font-family: inherit;
  font-size: 14px;
  -ms-touch-action: manipulation;
  touch-action: manipulation;
}

.multiselect {
  box-sizing: content-box;
  display: block;
  position: relative;
  width: 100%;
  min-height: 40px;
  text-align: left;
  color: #35495e;
}

.multiselect * {
  box-sizing: border-box;
}

.multiselect:focus {
  outline: none;
}

.multiselect--disabled {
  opacity: .6;
}

.multiselect--active {
  z-index: 1;
}

.multiselect--active:not(.multiselect--above) .multiselect__current,
.multiselect--active:not(.multiselect--above) .multiselect__input,
.multiselect--active:not(.multiselect--above) .multiselect__tags {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.multiselect--active .multiselect__select {
  transform: rotate(180deg);
}

.multiselect--above.multiselect--active .multiselect__current,
.multiselect--above.multiselect--active .multiselect__input,
.multiselect--above.multiselect--active .multiselect__tags {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.multiselect__input,
.multiselect__single {
  position: relative;
  display: inline-block;
  min-height: 20px;
  line-height: 20px;
  border: none;
  border-radius: 5px;
  background: #fff;
  padding: 0 0 0 5px;
  width: 100%;
  transition: border .1s ease;
  box-sizing: border-box;
  margin-bottom: 8px;
  vertical-align: top;
}

.multiselect__tag~.multiselect__input,
.multiselect__tag~.multiselect__single {
  width: auto;
}

.multiselect__input:hover,
.multiselect__single:hover {
  border-color: #cfcfcf;
}

.multiselect__input:focus,
.multiselect__single:focus {
  border-color: #a8a8a8;
  outline: none;
}

.multiselect__single {
  padding-left: 6px;
  margin-bottom: 8px;
}

.multiselect__tags-wrap {
  display: inline;
}

.multiselect__tags {
  min-height: 40px;
  display: block;
  padding: 8px 40px 0 8px;
  border-radius: 5px;
  border: 1px solid #e8e8e8;
  background: #fff;
}

.multiselect__tag {
  position: relative;
  display: inline-block;
  padding: 4px 26px 4px 10px;
  border-radius: 5px;
  margin-right: 10px;
  color: #fff;
  line-height: 1;
  background: #41b883;
  margin-bottom: 5px;
  white-space: nowrap;
  overflow: hidden;
  max-width: 100%;
  text-overflow: ellipsis;
}

.multiselect__tag-icon {
  cursor: pointer;
  margin-left: 7px;
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  font-weight: 700;
  font-style: normal;
  width: 22px;
  text-align: center;
  line-height: 22px;
  transition: all .2s ease;
  border-radius: 5px;
}

.multiselect__tag-icon:after {
  content: "\D7";
  color: #266d4d;
  font-size: 14px;
}

.multiselect__tag-icon:focus,
.multiselect__tag-icon:hover {
  background: #369a6e;
}

.multiselect__tag-icon:focus:after,
.multiselect__tag-icon:hover:after {
  color: #fff;
}

.multiselect__current {
  min-height: 40px;
  overflow: hidden;
  padding: 8px 12px 0;
  padding-right: 30px;
  white-space: nowrap;
  border-radius: 5px;
  border: 1px solid #e8e8e8;
}

.multiselect__current,
.multiselect__select {
  line-height: 16px;
  box-sizing: border-box;
  display: block;
  margin: 0;
  text-decoration: none;
  cursor: pointer;
}

.multiselect__select {
  position: absolute;
  width: 40px;
  height: 38px;
  right: 1px;
  top: 1px;
  padding: 4px 8px;
  text-align: center;
  transition: transform .2s ease;
}

.multiselect__select:before {
  position: relative;
  right: 0;
  top: 65%;
  color: #999;
  margin-top: 4px;
  border-style: solid;
  border-width: 5px 5px 0;
  border-color: #999 transparent transparent;
  content: "";
}

.multiselect__placeholder {
  color: #adadad;
  display: inline-block;
  margin-bottom: 10px;
  padding-top: 2px;
}

.multiselect--active .multiselect__placeholder {
  display: none;
}

.multiselect__content-wrapper {
  position: absolute;
  display: block;
  background: #fff;
  width: 100%;
  max-height: 240px;
  overflow: auto;
  border: 1px solid #e8e8e8;
  border-top: none;
  border-bottom-left-radius: 5px;
  border-bottom-right-radius: 5px;
  z-index: 1;
  -webkit-overflow-scrolling: touch;
}

.multiselect__content {
  list-style: none;
  display: inline-block;
  padding: 0;
  margin: 0;
  min-width: 100%;
  vertical-align: top;
}

.multiselect--above .multiselect__content-wrapper {
  bottom: 100%;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  border-top-left-radius: 5px;
  border-top-right-radius: 5px;
  border-bottom: none;
  border-top: 1px solid #e8e8e8;
}

.multiselect__content::webkit-scrollbar {
  display: none;
}

.multiselect__element {
  display: block;
}

.multiselect__option {
  display: block;
  padding: 12px;
  min-height: 40px;
  line-height: 16px;
  text-decoration: none;
  text-transform: none;
  vertical-align: middle;
  position: relative;
  cursor: pointer;
  white-space: nowrap;
}

.multiselect__option:after {
  top: 0;
  right: 0;
  position: absolute;
  line-height: 40px;
  padding-right: 12px;
  padding-left: 20px;
}

.multiselect__option--highlight {
  background: #41b883;
  outline: none;
  color: #fff;
}

.multiselect__option--highlight:after {
  content: attr(data-select);
  background: #41b883;
  color: #fff;
}

.multiselect__option--selected {
  background: #f3f3f3;
  color: #35495e;
  font-weight: 700;
}

.multiselect__option--selected:after {
  content: attr(data-selected);
  color: silver;
}

.multiselect__option--selected.multiselect__option--highlight {
  background: #ff6a6a;
  color: #fff;
}

.multiselect__option--selected.multiselect__option--highlight:after {
  background: #ff6a6a;
  content: attr(data-deselect);
  color: #fff;
}

.multiselect--disabled {
  background: #ededed;
  pointer-events: none;
}

.multiselect--disabled .multiselect__current,
.multiselect--disabled .multiselect__select,
.multiselect__option--disabled {
  background: #ededed;
  color: #a6a6a6;
}

.multiselect__option--disabled {
  cursor: text;
  pointer-events: none;
}

.multiselect__option--disabled.multiselect__option--highlight {
  background: #dedede!important;
}

.multiselect-enter-active,
.multiselect-leave-active {
  transition: all .15s ease;
}

.multiselect-enter,
.multiselect-leave-active {
  opacity: 0;
}

.multiselect__strong {
  margin-bottom: 8px;
  line-height: 20px;
  display: inline-block;
  vertical-align: top;
}

[dir=rtl] .multiselect {
  text-align: right;
}

[dir=rtl] .multiselect__select {
  right: auto;
  left: 1px;
}

[dir=rtl] .multiselect__tags {
  padding: 8px 8px 0 40px;
}

[dir=rtl] .multiselect__content {
  text-align: right;
}

[dir=rtl] .multiselect__option:after {
  right: auto;
  left: 0;
}

[dir=rtl] .multiselect__clear {
  right: auto;
  left: 12px;
}

[dir=rtl] .multiselect__spinner {
  right: auto;
  left: 1px;
}

@keyframes a {
  0% {
    transform: rotate(0);
  }

  to {
    transform: rotate(2turn);
  }
}</style><style type="text/css">@font-face {
  font-family: 'KaTeX_AMS';
  src: url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_AMS-Regular-3d8245dcb4489694a6a263b05c1cca01.woff2) format('woff2'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_AMS-Regular-ac1d46d953d403677171697581a284d2.woff) format('woff'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_AMS-Regular-c67be87adba7d31c013be127b936233d.ttf) format('truetype');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'KaTeX_Caligraphic';
  src: url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Caligraphic-Bold-970d3e76493b82fccf21ad5888ddee77.woff2) format('woff2'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Caligraphic-Bold-445f96a387df0d13ded71f27c608516d.woff) format('woff'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Caligraphic-Bold-3f61a84d76e80396489d32bc9dd8d444.ttf) format('truetype');
  font-weight: bold;
  font-style: normal;
}

@font-face {
  font-family: 'KaTeX_Caligraphic';
  src: url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Caligraphic-Regular-0ef0f2e356a2e1c457b6585d34edae77.woff2) format('woff2'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Caligraphic-Regular-74f6918c7d2b768ffd32048102bc0172.woff) format('woff'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Caligraphic-Regular-c3bc8fcec0e85a50cabf71e4e8074991.ttf) format('truetype');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'KaTeX_Fraktur';
  src: url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Fraktur-Bold-950649ba5e5cfd37cdad74095411d350.woff2) format('woff2'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Fraktur-Bold-1aca7ef7f976fb54a207ffc8aa180e38.woff) format('woff'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Fraktur-Bold-e11e6bf02fc41279a540d3655abf3b07.ttf) format('truetype');
  font-weight: bold;
  font-style: normal;
}

@font-face {
  font-family: 'KaTeX_Fraktur';
  src: url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Fraktur-Regular-135ccd74931753318f6f52f3fce19018.woff2) format('woff2'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Fraktur-Regular-c5b430bfcb3e5423b77401afcdb69b66.woff) format('woff'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Fraktur-Regular-a9509497466d16e6b7265a223ea39093.ttf) format('truetype');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'KaTeX_Main';
  src: url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Main-Bold-82bce349c8ff0927380b5177e9258ad0.woff2) format('woff2'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Main-Bold-29d4b276c622ff1d1376d9afcbd2f25a.woff) format('woff'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Main-Bold-db576c7d5d6eb6ebefc9b334f4140d42.ttf) format('truetype');
  font-weight: bold;
  font-style: normal;
}

@font-face {
  font-family: 'KaTeX_Main';
  src: url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Main-BoldItalic-13900e552dbf51aead905f897043226c.woff2) format('woff2'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Main-BoldItalic-3f3be43bbdd58a4a86c8eddd3d39a26a.woff) format('woff'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Main-BoldItalic-cec43f729e0e6810c3433f6020ec676e.ttf) format('truetype');
  font-weight: bold;
  font-style: italic;
}

@font-face {
  font-family: 'KaTeX_Main';
  src: url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Main-Italic-b488f60f79c9d1f533def644385d8219.woff2) format('woff2'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Main-Italic-f8a754484e776e94b6116dfbcb1761a7.woff) format('woff'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Main-Italic-85b3329fdb41fadfb0fdc01ec5290b2f.ttf) format('truetype');
  font-weight: normal;
  font-style: italic;
}

@font-face {
  font-family: 'KaTeX_Main';
  src: url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Main-Regular-999cd6bac6e8118065ac500d4f133c63.woff2) format('woff2'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Main-Regular-485696cf1d821baac6ae06c42e09faef.woff) format('woff'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Main-Regular-f4fe6dca4a5f5520ae0caab31848aae3.ttf) format('truetype');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'KaTeX_Math';
  src: url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Math-Italic-7a31741a44e58952cb4b8a763c206fcd.woff2) format('woff2'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Math-Italic-8eb56b3ff5b141cd3732a24e65c2b339.woff) format('woff'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Math-Italic-10740d7488d690a743339650103f1cb3.ttf) format('truetype');
  font-weight: normal;
  font-style: italic;
}

@font-face {
  font-family: 'KaTeX_SansSerif';
  src: url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_SansSerif-Bold-0d0f967a34b828083a11bb264e578c32.woff2) format('woff2'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_SansSerif-Bold-99bd87431ac7ef8f27591f72d7812509.woff) format('woff'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_SansSerif-Bold-771a1f955e7ff2106402b58d1e8a1ad2.ttf) format('truetype');
  font-weight: bold;
  font-style: normal;
}

@font-face {
  font-family: 'KaTeX_SansSerif';
  src: url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_SansSerif-Italic-b1ac79b9b69c954bbeb8fc02500832e0.woff2) format('woff2'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_SansSerif-Italic-9c3f03ec809c6f298d716cbda8260fcb.woff) format('woff'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_SansSerif-Italic-cb729d47fbd26ff0ae62bb840085e5b5.ttf) format('truetype');
  font-weight: normal;
  font-style: italic;
}

@font-face {
  font-family: 'KaTeX_SansSerif';
  src: url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_SansSerif-Regular-23f1730fda70ec6ec6aa789979890cba.woff2) format('woff2'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_SansSerif-Regular-fc90839714a9e877682309c3daf7493e.woff) format('woff'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_SansSerif-Regular-43b0cb92c2405f175772931ccd68002e.ttf) format('truetype');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'KaTeX_Script';
  src: url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Script-Regular-ae1fad1f4d1c227c9d567da8ea9f988c.woff2) format('woff2'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Script-Regular-60febfa114c5e32f0ce73050476aa39f.woff) format('woff'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Script-Regular-e9169ca7b32608b6235ec9ffff742a71.ttf) format('truetype');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'KaTeX_Size1';
  src: url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Size1-Regular-fda0824e8cfb676664ad063c367cfce3.woff2) format('woff2'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Size1-Regular-1d6cf6b89f694dc76e13ecc4e8214dd2.woff) format('woff'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Size1-Regular-f2e296ef7cef0f6f16912e5d171929b2.ttf) format('truetype');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'KaTeX_Size2';
  src: url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Size2-Regular-a7a0eb93afb696cb9b4efb87e6cd45a3.woff2) format('woff2'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Size2-Regular-f48e83b7bcaa68a86a78e8edfee1a04e.woff) format('woff'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Size2-Regular-0767ede65042583bcc06f09055f4d7ca.ttf) format('truetype');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'KaTeX_Size3';
  src: url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Size3-Regular-397bd6872be7adff4f000c49fa85a9c3.woff2) format('woff2'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Size3-Regular-0387ab387ace32f15b43c3a4a39f187f.woff) format('woff'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Size3-Regular-882f723427a0986846fe786bd8d6f6c7.ttf) format('truetype');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'KaTeX_Size4';
  src: url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Size4-Regular-3c14ed11dd8eea981c93bf283193856d.woff2) format('woff2'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Size4-Regular-726db3bd435c8a6e45e44741dae67263.woff) format('woff'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Size4-Regular-27901d5ce93d8971c416d9123fedb911.ttf) format('truetype');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'KaTeX_Typewriter';
  src: url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Typewriter-Regular-895baecfbf4ef298fdfe943fb117c15e.woff2) format('woff2'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Typewriter-Regular-696705de367f02534e8abb38b55af067.woff) format('woff'), url(//cdn2.jianshu.io/assets/_/_/_/_/shared/node_modules/katex/dist/fonts/KaTeX_Typewriter-Regular-6374f53e08c02d7b9ec594e2fb0c5fe8.ttf) format('truetype');
  font-weight: normal;
  font-style: normal;
}

.katex-display {
  display: block;
  margin: 1em 0;
  text-align: center;
}

.katex-display > .katex {
  display: inline-block;
  text-align: initial;
}

.katex {
  font: normal 1.21em KaTeX_Main, Times New Roman, serif;
  line-height: 1.2;
  white-space: nowrap;
  text-indent: 0;
  text-rendering: auto;
}

.katex * {
  -ms-high-contrast-adjust: none !important;
}

.katex .katex-html {
  display: inline-block;
}

.katex .katex-mathml {
  position: absolute;
  clip: rect(1px, 1px, 1px, 1px);
  padding: 0;
  border: 0;
  height: 1px;
  width: 1px;
  overflow: hidden;
}

.katex .base {
  position: relative;
  display: inline-block;
}

.katex .strut {
  display: inline-block;
}

.katex .textbf {
  font-weight: bold;
}

.katex .textit {
  font-style: italic;
}

.katex .textrm {
  font-family: KaTeX_Main;
}

.katex .textsf {
  font-family: KaTeX_SansSerif;
}

.katex .texttt {
  font-family: KaTeX_Typewriter;
}

.katex .mathit {
  font-family: KaTeX_Math;
  font-style: italic;
}

.katex .mathrm {
  font-style: normal;
}

.katex .mathbf {
  font-family: KaTeX_Main;
  font-weight: bold;
}

.katex .boldsymbol {
  font-family: KaTeX_Math;
  font-weight: bold;
  font-style: italic;
}

.katex .amsrm {
  font-family: KaTeX_AMS;
}

.katex .mathbb {
  font-family: KaTeX_AMS;
}

.katex .mathcal {
  font-family: KaTeX_Caligraphic;
}

.katex .mathfrak {
  font-family: KaTeX_Fraktur;
}

.katex .mathtt {
  font-family: KaTeX_Typewriter;
}

.katex .mathscr {
  font-family: KaTeX_Script;
}

.katex .mathsf {
  font-family: KaTeX_SansSerif;
}

.katex .mainit {
  font-family: KaTeX_Main;
  font-style: italic;
}

.katex .mainrm {
  font-family: KaTeX_Main;
  font-style: normal;
}

.katex .vlist-t {
  display: inline-table;
  table-layout: fixed;
}

.katex .vlist-r {
  display: table-row;
}

.katex .vlist {
  display: table-cell;
  vertical-align: bottom;
  position: relative;
}

.katex .vlist > span {
  display: block;
  height: 0;
  position: relative;
}

.katex .vlist > span > span {
  display: inline-block;
}

.katex .vlist > span > .pstrut {
  overflow: hidden;
  width: 0;
}

.katex .vlist-t2 {
  margin-right: -2px;
}

.katex .vlist-s {
  display: table-cell;
  vertical-align: bottom;
  font-size: 1px;
  width: 2px;
}

.katex .msupsub {
  text-align: left;
}

.katex .mfrac > span > span {
  text-align: center;
}

.katex .mfrac .frac-line {
  display: inline-block;
  width: 100%;
}

.katex .mspace {
  display: inline-block;
}

.katex .mspace.negativethinspace {
  margin-left: -0.16667em;
}

.katex .mspace.muspace {
  width: 0.055556em;
}

.katex .mspace.thinspace {
  width: 0.16667em;
}

.katex .mspace.negativemediumspace {
  margin-left: -0.22222em;
}

.katex .mspace.mediumspace {
  width: 0.22222em;
}

.katex .mspace.thickspace {
  width: 0.27778em;
}

.katex .mspace.sixmuspace {
  width: 0.333333em;
}

.katex .mspace.eightmuspace {
  width: 0.444444em;
}

.katex .mspace.enspace {
  width: 0.5em;
}

.katex .mspace.twelvemuspace {
  width: 0.666667em;
}

.katex .mspace.quad {
  width: 1em;
}

.katex .mspace.qquad {
  width: 2em;
}

.katex .llap,
.katex .rlap,
.katex .clap {
  width: 0;
  position: relative;
}

.katex .llap > .inner,
.katex .rlap > .inner,
.katex .clap > .inner {
  position: absolute;
}

.katex .llap > .fix,
.katex .rlap > .fix,
.katex .clap > .fix {
  display: inline-block;
}

.katex .llap > .inner {
  right: 0;
}

.katex .rlap > .inner,
.katex .clap > .inner {
  left: 0;
}

.katex .clap > .inner > span {
  margin-left: -50%;
  margin-right: 50%;
}

.katex .rule {
  display: inline-block;
  border: solid 0;
  position: relative;
}

.katex .overline .overline-line,
.katex .underline .underline-line {
  display: inline-block;
  width: 100%;
}

.katex .sqrt > .root {
  margin-left: 0.27777778em;
  margin-right: -0.55555556em;
}

.katex .sizing,
.katex .fontsize-ensurer {
  display: inline-block;
}

.katex .sizing.reset-size1.size1,
.katex .fontsize-ensurer.reset-size1.size1 {
  font-size: 1em;
}

.katex .sizing.reset-size1.size2,
.katex .fontsize-ensurer.reset-size1.size2 {
  font-size: 1.2em;
}

.katex .sizing.reset-size1.size3,
.katex .fontsize-ensurer.reset-size1.size3 {
  font-size: 1.4em;
}

.katex .sizing.reset-size1.size4,
.katex .fontsize-ensurer.reset-size1.size4 {
  font-size: 1.6em;
}

.katex .sizing.reset-size1.size5,
.katex .fontsize-ensurer.reset-size1.size5 {
  font-size: 1.8em;
}

.katex .sizing.reset-size1.size6,
.katex .fontsize-ensurer.reset-size1.size6 {
  font-size: 2em;
}

.katex .sizing.reset-size1.size7,
.katex .fontsize-ensurer.reset-size1.size7 {
  font-size: 2.4em;
}

.katex .sizing.reset-size1.size8,
.katex .fontsize-ensurer.reset-size1.size8 {
  font-size: 2.88em;
}

.katex .sizing.reset-size1.size9,
.katex .fontsize-ensurer.reset-size1.size9 {
  font-size: 3.456em;
}

.katex .sizing.reset-size1.size10,
.katex .fontsize-ensurer.reset-size1.size10 {
  font-size: 4.148em;
}

.katex .sizing.reset-size1.size11,
.katex .fontsize-ensurer.reset-size1.size11 {
  font-size: 4.976em;
}

.katex .sizing.reset-size2.size1,
.katex .fontsize-ensurer.reset-size2.size1 {
  font-size: 0.83333333em;
}

.katex .sizing.reset-size2.size2,
.katex .fontsize-ensurer.reset-size2.size2 {
  font-size: 1em;
}

.katex .sizing.reset-size2.size3,
.katex .fontsize-ensurer.reset-size2.size3 {
  font-size: 1.16666667em;
}

.katex .sizing.reset-size2.size4,
.katex .fontsize-ensurer.reset-size2.size4 {
  font-size: 1.33333333em;
}

.katex .sizing.reset-size2.size5,
.katex .fontsize-ensurer.reset-size2.size5 {
  font-size: 1.5em;
}

.katex .sizing.reset-size2.size6,
.katex .fontsize-ensurer.reset-size2.size6 {
  font-size: 1.66666667em;
}

.katex .sizing.reset-size2.size7,
.katex .fontsize-ensurer.reset-size2.size7 {
  font-size: 2em;
}

.katex .sizing.reset-size2.size8,
.katex .fontsize-ensurer.reset-size2.size8 {
  font-size: 2.4em;
}

.katex .sizing.reset-size2.size9,
.katex .fontsize-ensurer.reset-size2.size9 {
  font-size: 2.88em;
}

.katex .sizing.reset-size2.size10,
.katex .fontsize-ensurer.reset-size2.size10 {
  font-size: 3.45666667em;
}

.katex .sizing.reset-size2.size11,
.katex .fontsize-ensurer.reset-size2.size11 {
  font-size: 4.14666667em;
}

.katex .sizing.reset-size3.size1,
.katex .fontsize-ensurer.reset-size3.size1 {
  font-size: 0.71428571em;
}

.katex .sizing.reset-size3.size2,
.katex .fontsize-ensurer.reset-size3.size2 {
  font-size: 0.85714286em;
}

.katex .sizing.reset-size3.size3,
.katex .fontsize-ensurer.reset-size3.size3 {
  font-size: 1em;
}

.katex .sizing.reset-size3.size4,
.katex .fontsize-ensurer.reset-size3.size4 {
  font-size: 1.14285714em;
}

.katex .sizing.reset-size3.size5,
.katex .fontsize-ensurer.reset-size3.size5 {
  font-size: 1.28571429em;
}

.katex .sizing.reset-size3.size6,
.katex .fontsize-ensurer.reset-size3.size6 {
  font-size: 1.42857143em;
}

.katex .sizing.reset-size3.size7,
.katex .fontsize-ensurer.reset-size3.size7 {
  font-size: 1.71428571em;
}

.katex .sizing.reset-size3.size8,
.katex .fontsize-ensurer.reset-size3.size8 {
  font-size: 2.05714286em;
}

.katex .sizing.reset-size3.size9,
.katex .fontsize-ensurer.reset-size3.size9 {
  font-size: 2.46857143em;
}

.katex .sizing.reset-size3.size10,
.katex .fontsize-ensurer.reset-size3.size10 {
  font-size: 2.96285714em;
}

.katex .sizing.reset-size3.size11,
.katex .fontsize-ensurer.reset-size3.size11 {
  font-size: 3.55428571em;
}

.katex .sizing.reset-size4.size1,
.katex .fontsize-ensurer.reset-size4.size1 {
  font-size: 0.625em;
}

.katex .sizing.reset-size4.size2,
.katex .fontsize-ensurer.reset-size4.size2 {
  font-size: 0.75em;
}

.katex .sizing.reset-size4.size3,
.katex .fontsize-ensurer.reset-size4.size3 {
  font-size: 0.875em;
}

.katex .sizing.reset-size4.size4,
.katex .fontsize-ensurer.reset-size4.size4 {
  font-size: 1em;
}

.katex .sizing.reset-size4.size5,
.katex .fontsize-ensurer.reset-size4.size5 {
  font-size: 1.125em;
}

.katex .sizing.reset-size4.size6,
.katex .fontsize-ensurer.reset-size4.size6 {
  font-size: 1.25em;
}

.katex .sizing.reset-size4.size7,
.katex .fontsize-ensurer.reset-size4.size7 {
  font-size: 1.5em;
}

.katex .sizing.reset-size4.size8,
.katex .fontsize-ensurer.reset-size4.size8 {
  font-size: 1.8em;
}

.katex .sizing.reset-size4.size9,
.katex .fontsize-ensurer.reset-size4.size9 {
  font-size: 2.16em;
}

.katex .sizing.reset-size4.size10,
.katex .fontsize-ensurer.reset-size4.size10 {
  font-size: 2.5925em;
}

.katex .sizing.reset-size4.size11,
.katex .fontsize-ensurer.reset-size4.size11 {
  font-size: 3.11em;
}

.katex .sizing.reset-size5.size1,
.katex .fontsize-ensurer.reset-size5.size1 {
  font-size: 0.55555556em;
}

.katex .sizing.reset-size5.size2,
.katex .fontsize-ensurer.reset-size5.size2 {
  font-size: 0.66666667em;
}

.katex .sizing.reset-size5.size3,
.katex .fontsize-ensurer.reset-size5.size3 {
  font-size: 0.77777778em;
}

.katex .sizing.reset-size5.size4,
.katex .fontsize-ensurer.reset-size5.size4 {
  font-size: 0.88888889em;
}

.katex .sizing.reset-size5.size5,
.katex .fontsize-ensurer.reset-size5.size5 {
  font-size: 1em;
}

.katex .sizing.reset-size5.size6,
.katex .fontsize-ensurer.reset-size5.size6 {
  font-size: 1.11111111em;
}

.katex .sizing.reset-size5.size7,
.katex .fontsize-ensurer.reset-size5.size7 {
  font-size: 1.33333333em;
}

.katex .sizing.reset-size5.size8,
.katex .fontsize-ensurer.reset-size5.size8 {
  font-size: 1.6em;
}

.katex .sizing.reset-size5.size9,
.katex .fontsize-ensurer.reset-size5.size9 {
  font-size: 1.92em;
}

.katex .sizing.reset-size5.size10,
.katex .fontsize-ensurer.reset-size5.size10 {
  font-size: 2.30444444em;
}

.katex .sizing.reset-size5.size11,
.katex .fontsize-ensurer.reset-size5.size11 {
  font-size: 2.76444444em;
}

.katex .sizing.reset-size6.size1,
.katex .fontsize-ensurer.reset-size6.size1 {
  font-size: 0.5em;
}

.katex .sizing.reset-size6.size2,
.katex .fontsize-ensurer.reset-size6.size2 {
  font-size: 0.6em;
}

.katex .sizing.reset-size6.size3,
.katex .fontsize-ensurer.reset-size6.size3 {
  font-size: 0.7em;
}

.katex .sizing.reset-size6.size4,
.katex .fontsize-ensurer.reset-size6.size4 {
  font-size: 0.8em;
}

.katex .sizing.reset-size6.size5,
.katex .fontsize-ensurer.reset-size6.size5 {
  font-size: 0.9em;
}

.katex .sizing.reset-size6.size6,
.katex .fontsize-ensurer.reset-size6.size6 {
  font-size: 1em;
}

.katex .sizing.reset-size6.size7,
.katex .fontsize-ensurer.reset-size6.size7 {
  font-size: 1.2em;
}

.katex .sizing.reset-size6.size8,
.katex .fontsize-ensurer.reset-size6.size8 {
  font-size: 1.44em;
}

.katex .sizing.reset-size6.size9,
.katex .fontsize-ensurer.reset-size6.size9 {
  font-size: 1.728em;
}

.katex .sizing.reset-size6.size10,
.katex .fontsize-ensurer.reset-size6.size10 {
  font-size: 2.074em;
}

.katex .sizing.reset-size6.size11,
.katex .fontsize-ensurer.reset-size6.size11 {
  font-size: 2.488em;
}

.katex .sizing.reset-size7.size1,
.katex .fontsize-ensurer.reset-size7.size1 {
  font-size: 0.41666667em;
}

.katex .sizing.reset-size7.size2,
.katex .fontsize-ensurer.reset-size7.size2 {
  font-size: 0.5em;
}

.katex .sizing.reset-size7.size3,
.katex .fontsize-ensurer.reset-size7.size3 {
  font-size: 0.58333333em;
}

.katex .sizing.reset-size7.size4,
.katex .fontsize-ensurer.reset-size7.size4 {
  font-size: 0.66666667em;
}

.katex .sizing.reset-size7.size5,
.katex .fontsize-ensurer.reset-size7.size5 {
  font-size: 0.75em;
}

.katex .sizing.reset-size7.size6,
.katex .fontsize-ensurer.reset-size7.size6 {
  font-size: 0.83333333em;
}

.katex .sizing.reset-size7.size7,
.katex .fontsize-ensurer.reset-size7.size7 {
  font-size: 1em;
}

.katex .sizing.reset-size7.size8,
.katex .fontsize-ensurer.reset-size7.size8 {
  font-size: 1.2em;
}

.katex .sizing.reset-size7.size9,
.katex .fontsize-ensurer.reset-size7.size9 {
  font-size: 1.44em;
}

.katex .sizing.reset-size7.size10,
.katex .fontsize-ensurer.reset-size7.size10 {
  font-size: 1.72833333em;
}

.katex .sizing.reset-size7.size11,
.katex .fontsize-ensurer.reset-size7.size11 {
  font-size: 2.07333333em;
}

.katex .sizing.reset-size8.size1,
.katex .fontsize-ensurer.reset-size8.size1 {
  font-size: 0.34722222em;
}

.katex .sizing.reset-size8.size2,
.katex .fontsize-ensurer.reset-size8.size2 {
  font-size: 0.41666667em;
}

.katex .sizing.reset-size8.size3,
.katex .fontsize-ensurer.reset-size8.size3 {
  font-size: 0.48611111em;
}

.katex .sizing.reset-size8.size4,
.katex .fontsize-ensurer.reset-size8.size4 {
  font-size: 0.55555556em;
}

.katex .sizing.reset-size8.size5,
.katex .fontsize-ensurer.reset-size8.size5 {
  font-size: 0.625em;
}

.katex .sizing.reset-size8.size6,
.katex .fontsize-ensurer.reset-size8.size6 {
  font-size: 0.69444444em;
}

.katex .sizing.reset-size8.size7,
.katex .fontsize-ensurer.reset-size8.size7 {
  font-size: 0.83333333em;
}

.katex .sizing.reset-size8.size8,
.katex .fontsize-ensurer.reset-size8.size8 {
  font-size: 1em;
}

.katex .sizing.reset-size8.size9,
.katex .fontsize-ensurer.reset-size8.size9 {
  font-size: 1.2em;
}

.katex .sizing.reset-size8.size10,
.katex .fontsize-ensurer.reset-size8.size10 {
  font-size: 1.44027778em;
}

.katex .sizing.reset-size8.size11,
.katex .fontsize-ensurer.reset-size8.size11 {
  font-size: 1.72777778em;
}

.katex .sizing.reset-size9.size1,
.katex .fontsize-ensurer.reset-size9.size1 {
  font-size: 0.28935185em;
}

.katex .sizing.reset-size9.size2,
.katex .fontsize-ensurer.reset-size9.size2 {
  font-size: 0.34722222em;
}

.katex .sizing.reset-size9.size3,
.katex .fontsize-ensurer.reset-size9.size3 {
  font-size: 0.40509259em;
}

.katex .sizing.reset-size9.size4,
.katex .fontsize-ensurer.reset-size9.size4 {
  font-size: 0.46296296em;
}

.katex .sizing.reset-size9.size5,
.katex .fontsize-ensurer.reset-size9.size5 {
  font-size: 0.52083333em;
}

.katex .sizing.reset-size9.size6,
.katex .fontsize-ensurer.reset-size9.size6 {
  font-size: 0.5787037em;
}

.katex .sizing.reset-size9.size7,
.katex .fontsize-ensurer.reset-size9.size7 {
  font-size: 0.69444444em;
}

.katex .sizing.reset-size9.size8,
.katex .fontsize-ensurer.reset-size9.size8 {
  font-size: 0.83333333em;
}

.katex .sizing.reset-size9.size9,
.katex .fontsize-ensurer.reset-size9.size9 {
  font-size: 1em;
}

.katex .sizing.reset-size9.size10,
.katex .fontsize-ensurer.reset-size9.size10 {
  font-size: 1.20023148em;
}

.katex .sizing.reset-size9.size11,
.katex .fontsize-ensurer.reset-size9.size11 {
  font-size: 1.43981481em;
}

.katex .sizing.reset-size10.size1,
.katex .fontsize-ensurer.reset-size10.size1 {
  font-size: 0.24108004em;
}

.katex .sizing.reset-size10.size2,
.katex .fontsize-ensurer.reset-size10.size2 {
  font-size: 0.28929605em;
}

.katex .sizing.reset-size10.size3,
.katex .fontsize-ensurer.reset-size10.size3 {
  font-size: 0.33751205em;
}

.katex .sizing.reset-size10.size4,
.katex .fontsize-ensurer.reset-size10.size4 {
  font-size: 0.38572806em;
}

.katex .sizing.reset-size10.size5,
.katex .fontsize-ensurer.reset-size10.size5 {
  font-size: 0.43394407em;
}

.katex .sizing.reset-size10.size6,
.katex .fontsize-ensurer.reset-size10.size6 {
  font-size: 0.48216008em;
}

.katex .sizing.reset-size10.size7,
.katex .fontsize-ensurer.reset-size10.size7 {
  font-size: 0.57859209em;
}

.katex .sizing.reset-size10.size8,
.katex .fontsize-ensurer.reset-size10.size8 {
  font-size: 0.69431051em;
}

.katex .sizing.reset-size10.size9,
.katex .fontsize-ensurer.reset-size10.size9 {
  font-size: 0.83317261em;
}

.katex .sizing.reset-size10.size10,
.katex .fontsize-ensurer.reset-size10.size10 {
  font-size: 1em;
}

.katex .sizing.reset-size10.size11,
.katex .fontsize-ensurer.reset-size10.size11 {
  font-size: 1.19961427em;
}

.katex .sizing.reset-size11.size1,
.katex .fontsize-ensurer.reset-size11.size1 {
  font-size: 0.20096463em;
}

.katex .sizing.reset-size11.size2,
.katex .fontsize-ensurer.reset-size11.size2 {
  font-size: 0.24115756em;
}

.katex .sizing.reset-size11.size3,
.katex .fontsize-ensurer.reset-size11.size3 {
  font-size: 0.28135048em;
}

.katex .sizing.reset-size11.size4,
.katex .fontsize-ensurer.reset-size11.size4 {
  font-size: 0.32154341em;
}

.katex .sizing.reset-size11.size5,
.katex .fontsize-ensurer.reset-size11.size5 {
  font-size: 0.36173633em;
}

.katex .sizing.reset-size11.size6,
.katex .fontsize-ensurer.reset-size11.size6 {
  font-size: 0.40192926em;
}

.katex .sizing.reset-size11.size7,
.katex .fontsize-ensurer.reset-size11.size7 {
  font-size: 0.48231511em;
}

.katex .sizing.reset-size11.size8,
.katex .fontsize-ensurer.reset-size11.size8 {
  font-size: 0.57877814em;
}

.katex .sizing.reset-size11.size9,
.katex .fontsize-ensurer.reset-size11.size9 {
  font-size: 0.69453376em;
}

.katex .sizing.reset-size11.size10,
.katex .fontsize-ensurer.reset-size11.size10 {
  font-size: 0.83360129em;
}

.katex .sizing.reset-size11.size11,
.katex .fontsize-ensurer.reset-size11.size11 {
  font-size: 1em;
}

.katex .delimsizing.size1 {
  font-family: KaTeX_Size1;
}

.katex .delimsizing.size2 {
  font-family: KaTeX_Size2;
}

.katex .delimsizing.size3 {
  font-family: KaTeX_Size3;
}

.katex .delimsizing.size4 {
  font-family: KaTeX_Size4;
}

.katex .delimsizing.mult .delim-size1 > span {
  font-family: KaTeX_Size1;
}

.katex .delimsizing.mult .delim-size4 > span {
  font-family: KaTeX_Size4;
}

.katex .nulldelimiter {
  display: inline-block;
  width: 0.12em;
}

.katex .delimcenter {
  position: relative;
}

.katex .op-symbol {
  position: relative;
}

.katex .op-symbol.small-op {
  font-family: KaTeX_Size1;
}

.katex .op-symbol.large-op {
  font-family: KaTeX_Size2;
}

.katex .op-limits > .vlist-t {
  text-align: center;
}

.katex .accent > .vlist-t {
  text-align: center;
}

.katex .accent .accent-body {
  width: 0;
  position: relative;
}

.katex .overlay {
  display: block;
}

.katex .mtable .vertical-separator {
  display: inline-block;
  margin: 0 -0.125em;
  width: 0.25em;
}

.katex .mtable .arraycolsep {
  display: inline-block;
}

.katex .mtable .col-align-c > .vlist-t {
  text-align: center;
}

.katex .mtable .col-align-l > .vlist-t {
  text-align: left;
}

.katex .mtable .col-align-r > .vlist-t {
  text-align: right;
}

.katex .svg-align {
  text-align: left;
}

.katex svg {
  display: block;
  position: absolute;
  width: 100%;
  fill: currentColor;
  stroke: currentColor;
  fill-rule: nonzero;
  fill-opacity: 1;
  stroke-width: 1;
  stroke-linecap: butt;
  stroke-linejoin: miter;
  stroke-miterlimit: 4;
  stroke-dasharray: none;
  stroke-dashoffset: 0;
  stroke-opacity: 1;
}

.katex svg path {
  stroke: none;
}

.katex .vertical-separator svg {
  width: 0.25em;
}

.katex .stretchy {
  width: 100%;
  display: block;
}

.katex .stretchy:before,
.katex .stretchy:after {
  content: "";
}

.katex .hide-tail {
  width: 100%;
  position: relative;
  overflow: hidden;
}

.katex .halfarrow-left {
  position: absolute;
  left: 0;
  width: 50.1%;
  overflow: hidden;
}

.katex .halfarrow-right {
  position: absolute;
  right: 0;
  width: 50%;
  overflow: hidden;
}

.katex .brace-left {
  position: absolute;
  left: 0;
  width: 25.1%;
  overflow: hidden;
}

.katex .brace-center {
  position: absolute;
  left: 25%;
  width: 50%;
  overflow: hidden;
}

.katex .brace-right {
  position: absolute;
  right: 0;
  width: 25.1%;
  overflow: hidden;
}

.katex .x-arrow-pad {
  padding: 0 0.5em;
}

.katex .x-arrow,
.katex .mover,
.katex .munder {
  text-align: center;
}

.katex .boxpad {
  padding: 0 0.3em 0 0.3em;
}

.katex .fbox {
  box-sizing: border-box;
  border: 0.04em solid black;
}

.katex .fcolorbox {
  box-sizing: border-box;
  border: 0.04em solid;
}

.katex .cancel-pad {
  padding: 0 0.2em 0 0.2em;
}

.katex .mord + .cancel-lap,
.katex .mbin + .cancel-lap {
  margin-left: -0.2em;
}

.katex .cancel-lap + .mord,
.katex .cancel-lap + .mbin,
.katex .cancel-lap + .msupsub {
  margin-left: -0.2em;
}

.katex .sout {
  border-bottom-style: solid;
  border-bottom-width: 0.08em;
}</style><style type="text/css">
#free-reward-panel .reward-users-modal main {
  padding: 0;
}
</style><style type="text/css">
@charset "UTF-8";
/*
 * 变量
*/
.reward-note-modal .v-modal {
  width: 620px;
  text-align: center;
}
.reward-note-modal .v-modal form {
    margin: 0 auto 25px auto;
    padding: 0 40px;
}
.reward-note-modal .v-modal .reward-intro {
    margin-top: 20px;
    margin-bottom: 20px;
    font-size: 16px;
}
.reward-note-modal .v-modal .reward-intro .avatar {
      cursor: default !important;
      width: 36px;
      height: 36px;
      margin-right: 10px;
      display: inline-block;
}
.reward-note-modal .v-modal .reward-intro .intro {
      margin-right: 5px;
      font-weight: bold;
      vertical-align: middle;
}
.reward-note-modal .v-modal .reward-intro i {
      color: #EA6F5A;
      vertical-align: middle;
}
.reward-note-modal .v-modal .main-inputs {
    margin: 25px 0;
}
.reward-note-modal .v-modal .main-inputs .amount-group {
      margin: 0 -5px;
}
.reward-note-modal .v-modal .main-inputs .amount-group input {
        display: none;
}
.reward-note-modal .v-modal .main-inputs .amount-group input:checked + .option {
        color: #EA6F5A;
        border-color: #EA6F5A;
}
.reward-note-modal .v-modal .main-inputs .amount-group .custom-amount:checked + .option .custom-text {
        opacity: 0;
}
.reward-note-modal .v-modal .main-inputs .amount-group .custom-amount:checked + .option .custom-amount-input {
        opacity: 1;
}
.reward-note-modal .v-modal .main-inputs .amount-group .option {
        position: relative;
        margin: 0 5px 15px;
        width: 156px;
        height: 56px;
        line-height: 54px;
        border: 1px solid #E6E6E6;
        border-radius: 4px;
        font-weight: normal;
        color: #999999;
        cursor: pointer;
}
.reward-note-modal .v-modal .main-inputs .amount-group .option i {
          font-size: 16px;
          vertical-align: middle;
}
.reward-note-modal .v-modal .main-inputs .amount-group .option .amount {
          font-size: 28px;
          vertical-align: middle;
}
.reward-note-modal .v-modal .main-inputs .amount-group .option .piece {
          font-size: 13px;
          vertical-align: sub;
}
.reward-note-modal .v-modal .main-inputs .amount-group .option .custom-amount-input {
          position: absolute;
          top: 0;
          z-index: -1;
          width: 100%;
          opacity: 0;
}
.reward-note-modal .v-modal .main-inputs .amount-group .option .custom-amount-input i {
            position: absolute;
            top: 0;
            left: 10px;
}
.reward-note-modal .v-modal .main-inputs .amount-group .option .custom-amount-input .piece {
            position: absolute;
            top: 4px;
            right: 10px;
}
.reward-note-modal .v-modal .main-inputs .amount-group .option .custom-amount-input input {
            display: block;
            margin: 0 auto;
            width: 80px;
            height: 54px;
            line-height: 54px;
            border: none;
            font-size: 28px;
            text-align: center;
            background: transparent;
            -moz-appearance: textfield;
}
.reward-note-modal .v-modal .main-inputs .amount-group .option .custom-amount-input input::-webkit-outer-spin-button, .reward-note-modal .v-modal .main-inputs .amount-group .option .custom-amount-input input::-webkit-inner-spin-button {
              -webkit-appearance: none !important;
}
.reward-note-modal .v-modal .main-inputs .message {
      padding: 15px 20px;
      margin-bottom: 0;
      font-size: 14px;
      border: 1px solid #E6E6E6;
      color: #333333;
      border-radius: 4px;
      background-color: rgba(180, 180, 180, 0.1);
}
.reward-note-modal .v-modal .main-inputs .message textarea {
        width: 100%;
        height: 44px;
        padding: 0;
        margin: 0;
        resize: none;
        background: none !important;
        border: none !important;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        -webkit-box-shadow: none;
                box-shadow: none;
}
.reward-note-modal .v-modal .main-inputs .message textarea:focus {
          outline: none;
}
.reward-note-modal .v-modal .reward-info .amount {
    font-size: 28px;
    font-weight: bold;
    color: #EA6F5A;
}
.reward-note-modal .v-modal .reward-info .pay-method {
    font-size: 14px;
}
.reward-note-modal .v-modal .reward-info .pay-method a {
      color: #3194D0;
}
.reward-note-modal .v-modal .choose-pay {
    margin: 0 -5px;
}
.reward-note-modal .v-modal .choose-pay input {
      display: none;
}
.reward-note-modal .v-modal .choose-pay input:checked + .option {
      color: #EA6F5A;
      border-color: #EA6F5A;
}
.reward-note-modal .v-modal .choose-pay .option {
      margin: 20px 5px 10px;
      width: 156px;
      height: 56px;
      line-height: 54px;
      text-align: center;
      border: 1px solid #E6E6E6;
      border-radius: 4px;
      cursor: pointer;
}
.reward-note-modal .v-modal .choose-pay .option img {
        height: 30px;
}
.reward-note-modal .v-modal .choose-pay .option img.day.alipay, .reward-note-modal .v-modal .choose-pay .option img.night.alipay {
        min-width: 85px;
}
.reward-note-modal .v-modal .choose-pay .option img.day.wechat, .reward-note-modal .v-modal .choose-pay .option img.night.wechat {
        min-width: 112px;
}
.reward-note-modal .v-modal .choose-pay .option img.night {
        display: none;
}
.reward-note-modal .v-modal .choose-pay .tooltip {
      width: 230px;
}
.reward-note-modal .v-modal .modal-footer {
    padding: 0 15px 20px;
    border: none;
    background-color: transparent;
    text-align: center;
}
.reward-note-modal .v-modal .modal-footer .btn {
      padding: 8px 45px;
      font-size: 24px;
}
.reward-note-modal .v-modal .btn-pay {
    padding: 8px 25px;
    font-size: 16px;
    color: #ffffff;
    background-color: #F5A623;
}
.weixin-pay, .success-pay {
  text-align: center;
}
.weixin-pay .v-modal, .success-pay .v-modal {
    width: 350px;
}
.weixin-pay .ic-successed, .success-pay .ic-successed {
    font-size: 60px;
    color: #3db922;
}
.weixin-pay h2, .weixin-pay h3, .success-pay h2, .success-pay h3 {
    margin-bottom: 20px;
    color: #333333;
}
.weixin-pay h2, .success-pay h2 {
    margin: 0 0 40px 0;
    font-size: 24px;
}
.weixin-pay .bind-text, .success-pay .bind-text {
    position: relative;
    margin-bottom: 30px;
    font-size: 14px;
    color: #999999;
}
.weixin-pay .bind-text:before, .weixin-pay .bind-text:after, .success-pay .bind-text:before, .success-pay .bind-text:after {
      content: "";
      border-top: 1px solid #999;
      display: block;
      position: absolute;
      width: 40px;
      top: 8px;
}
.weixin-pay .bind-text:before, .success-pay .bind-text:before {
      left: 30px;
}
.weixin-pay .bind-text:after, .success-pay .bind-text:after {
      right: 30px;
}
.weixin-pay .share-bind, .success-pay .share-bind {
    display: block;
    margin-bottom: 30px;
}
.weixin-pay .share-bind i, .success-pay .share-bind i {
      margin-right: 4px;
      font-size: 22px;
      vertical-align: middle;
}
.weixin-pay .share-bind.wechat i, .success-pay .share-bind.wechat i {
      color: #00BB29;
}
.weixin-pay .share-bind.weibo i, .success-pay .share-bind.weibo i {
      color: #E05244;
}
.weixin-pay .wx-qr-code, .success-pay .wx-qr-code {
    display: inline-block;
}
.weixin-pay .wx-qr-code img, .success-pay .wx-qr-code img {
      margin: 0 auto;
      padding: 10px;
      width: 200px;
      background-color: #ffffff;
}
.weixin-pay .pay-amount, .success-pay .pay-amount {
    margin: 20px 0;
    color: #787878;
}
.weixin-pay .pay-amount span, .success-pay .pay-amount span {
      color: #F5A623;
}
</style><style type="text/css">
@charset "UTF-8";
/*
 * 变量
*/
.v-modal-wrap {
  position: fixed;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 9999;
  background-color: transparent;
}
.v-modal-wrap.modal-leave-active {
    -webkit-transition: opacity 0.3s;
    -o-transition: opacity 0.3s;
    transition: opacity 0.3s;
}
.v-modal-wrap.modal-enter-active .v-modal-mask, .v-modal-wrap.modal-leave-active .v-modal-mask {
    opacity: 0;
}
.v-modal-wrap.modal-enter-active .v-modal, .v-modal-wrap.modal-leave-active .v-modal {
    -webkit-transform: translate(-50%, -70%);
        -ms-transform: translate(-50%, -70%);
            transform: translate(-50%, -70%);
    opacity: 0;
}
.v-modal-wrap .v-modal-mask {
    background-color: rgba(255, 255, 255, 0.7);
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    -webkit-transition: opacity 0.3s;
    -o-transition: opacity 0.3s;
    transition: opacity 0.3s;
    opacity: 1;
}
.v-modal-wrap .v-modal {
    position: absolute;
    left: 50%;
    top: 50%;
    -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    border-radius: 6px;
    border: 1px solid rgba(0, 0, 0, 0.1);
    background-color: #fff;
    -webkit-box-shadow: 0 5px 25px rgba(0, 0, 0, 0.1);
            box-shadow: 0 5px 25px rgba(0, 0, 0, 0.1);
    -webkit-transition: opacity 0.3s, -webkit-transform 0.3s;
    transition: opacity 0.3s, -webkit-transform 0.3s;
    -o-transition: opacity 0.3s, transform 0.3s;
    transition: opacity 0.3s, transform 0.3s;
    transition: opacity 0.3s, transform 0.3s, -webkit-transform 0.3s;
    opacity: 1;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    overflow: hidden;
}
.v-modal-wrap .v-modal > header:before, .v-modal-wrap .v-modal > header:after, .v-modal-wrap .v-modal > main:before, .v-modal-wrap .v-modal > main:after, .v-modal-wrap .v-modal > footer:before, .v-modal-wrap .v-modal > footer:after {
      content: '';
      clear: both;
      display: table;
}
.v-modal-wrap .v-modal > header {
      padding: 20px;
      border-bottom: 1px solid #F0F0F0;
}
.v-modal-wrap .v-modal > header h4 {
        margin: 0;
        color: #333;
        text-align: left;
}
.v-modal-wrap .v-modal .close {
      position: absolute;
      right: 16px;
      top: 20px;
      font-size: 26px;
      line-height: 20px;
      color: rgba(0, 0, 0, 0.8);
}
.v-modal-wrap .v-modal .close:hover {
        color: #000000;
}
.v-modal-wrap .v-modal > main {
      padding: 20px 20px 20px 20px;
      font-size: 15px;
      color: #333;
      -webkit-box-flex: 1;
      -webkit-flex-grow: 1;
          -ms-flex-positive: 1;
              flex-grow: 1;
      overflow-x: hidden;
      overflow-y: auto;
}
.v-modal-wrap .v-modal > footer {
      padding: 20px;
      background-color: #fff;
}
.v-modal-wrap .v-modal > footer button {
        padding: 0;
        margin: 0;
        background-color: transparent;
        border: 0;
        float: right;
}
.v-modal-wrap .v-modal > footer button:focus {
          outline: 0;
}
.v-modal-wrap .v-modal > footer .submit {
        padding: 4px 12px;
        border: 1px solid;
        border-radius: 20px;
}
.v-modal-wrap .v-modal > footer .cancel {
        margin-top: 5px;
}
.v-modal-wrap .v-modal > footer .cancel:hover {
          color: #333333;
}
.reader-night-mode .v-modal-wrap .v-modal-mask {
  background-color: rgba(63, 63, 63, 0.7);
}
.reader-night-mode .v-modal-wrap .v-modal {
  background-color: #3f3f3f;
}
.reader-night-mode .v-modal-wrap .v-modal header {
    border-color: #2F2F2F;
}
.reader-night-mode .v-modal-wrap .v-modal header h4 {
      color: #C8C8C8;
}
.reader-night-mode .v-modal-wrap .v-modal .close {
    color: #C8C8C8;
}
.reader-night-mode .v-modal-wrap .v-modal .close:hover {
      color: #ffffff;
}
.reader-night-mode .v-modal-wrap .v-modal main {
    color: #C8C8C8;
}
.reader-night-mode .v-modal-wrap .v-modal footer {
    background-color: #3f3f3f;
}
.reader-night-mode .v-modal-wrap .v-modal footer .cancel:hover {
      color: #C8C8C8;
}
</style><style type="text/css">
@charset "UTF-8";
/*
 * 变量
*/
.like[data-v-6ddd02c6] {
  display: inline-block;
}
.like .like-group[data-v-6ddd02c6] {
    position: relative;
    padding: 13px 0 15px 0;
    font-size: 0;
    border: 1px solid #EA6F5A;
    border-radius: 40px;
}
.like .like-group[data-v-6ddd02c6]:hover {
      background-color: rgba(236, 97, 73, 0.05);
}
.like .like-group .btn-like[data-v-6ddd02c6] {
      display: inline-block;
      font-size: 19px;
}
.like .like-group .btn-like[data-v-6ddd02c6]:before {
        content: '';
        position: absolute;
        left: 12px;
        top: 2px;
        width: 50px;
        height: 50px;
        background-image: url(//cdn2.jianshu.io/assets/web/like_animation_steps-62a00a7b52377d3069927cdb8e61fd34.png);
        background-position: left;
        background-repeat: no-repeat;
        background-size: 1000px 50px;
}
.like .like-group .btn-like a[data-v-6ddd02c6] {
        position: relative;
        padding: 18px 30px 18px 55px;
        color: #EA6F5A;
}
.like .like-group .modal-wrap[data-v-6ddd02c6] {
      font-size: 18px;
      border-left: 1px solid rgba(236, 97, 73, 0.4);
      display: inline-block;
      margin-left: -15px;
}
.like .like-group .modal-wrap a[data-v-6ddd02c6] {
        color: #EA6F5A;
        padding: 18px 26px 18px 18px;
}
.like .like-group.like-animation[data-v-6ddd02c6], .like .like-group.active[data-v-6ddd02c6] {
      background-color: #EA6F5A;
}
.like .like-group.like-animation .btn-like a[data-v-6ddd02c6], .like .like-group.active .btn-like a[data-v-6ddd02c6] {
        color: white;
}
.like .like-group.like-animation .modal-wrap[data-v-6ddd02c6], .like .like-group.active .modal-wrap[data-v-6ddd02c6] {
        border-left: 1px solid white;
}
.like .like-group.like-animation .modal-wrap a[data-v-6ddd02c6], .like .like-group.active .modal-wrap a[data-v-6ddd02c6] {
          color: white;
}
.like .like-group.like-animation .btn-like[data-v-6ddd02c6]:before {
      -webkit-animation: likeBlast-data-v-6ddd02c6 0.6s 1 steps(19);
              animation: likeBlast-data-v-6ddd02c6 0.6s 1 steps(19);
      background-position: right;
}
@-webkit-keyframes likeBlast {
0% {
    background-position: left;
}
100% {
    background-position: right;
}
}
@keyframes likeBlast-data-v-6ddd02c6 {
0% {
    background-position: left;
}
100% {
    background-position: right;
}
}
.like .like-group.active .btn-like[data-v-6ddd02c6]:before {
      background-position: right;
}
</style><style type="text/css">
@charset "UTF-8";
/*
 * 变量
*/
.main {
  position: relative;
  margin: 0 auto;
  padding: 0 0 30px 0;
  width: 620px;
}
.main .title {
    padding-left: 8px;
    border-left: 3px solid #EA6F5A;
    line-height: 1;
    font-size: 15px;
}
.main .collection-settings {
    position: absolute;
    top: 2px;
    right: 0;
    font-size: 13px;
    color: #A0A0A0;
}
.main .collection-settings span {
      padding-left: 4px;
}
.main .include-collection {
    width: 100%;
    padding-top: 20px;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: start;
    -webkit-justify-content: flex-start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
}
.main .include-collection .item {
      display: inline-block;
      margin: 0 12px 12px 0;
      min-height: 32px;
      background-color: white;
      border: 1px solid #DCDCDC;
      border-radius: 4px;
      vertical-align: top;
      overflow: hidden;
}
.main .include-collection .item img {
        width: 32px;
        height: 32px;
}
.main .include-collection .item .name {
        display: inline-block;
        padding: 0 10px;
        font-size: 14px;
}
.main .include-collection .add-collection-wrap {
      margin: 0 12px 12px 0;
}
.main .include-collection .add-collection {
      padding: 8px 12px;
      font-size: 14px;
      border: 1px solid #DCDCDC;
      border-radius: 4px;
}
.main .include-collection .add-collection i {
        margin-right: 4px;
        color: #969696;
}
.main .recommend-note a {
    position: relative;
    margin: 20px 2px 0 0;
    width: 200px;
    height: 160px;
    display: inline-block;
}
.main .recommend-note a:after {
      content: "";
      position: absolute;
      width: 200px;
      height: 160px;
      border-radius: 0 0 4px 4px;
      -webkit-box-shadow: inset 0px -80px 50px -22px rgba(0, 0, 0, 0.6);
              box-shadow: inset 0px -80px 50px -22px rgba(0, 0, 0, 0.6);
      top: 0;
      left: 0;
      z-index: 1;
}
.main .recommend-note .name {
    position: absolute;
    bottom: 40px;
    left: 10px;
    right: 10px;
    font-size: 17px;
    font-weight: bold;
    color: #ffffff;
    z-index: 2;
}
.main .recommend-note .author {
    position: absolute;
    bottom: 10px;
    left: 10px;
    right: 10px;
    z-index: 2;
}
.main .recommend-note .avatar {
    width: 20px;
    height: 20px;
    display: inline-block;
}
.main .recommend-note .avatar img {
      border-radius: 50%;
}
.main .recommend-note .author-name {
    font-size: 12px;
    color: #ffffff;
    display: inline-block;
    vertical-align: -1px;
}
.main .show-more {
    margin: 0 12px 12px 0;
    font-size: 14px;
    color: #A0A0A0;
}
</style><script>//console.log('a')
</script><script>doAdblock();
function doAdblock(){
    (function() {
        function A() {}
        A.prototype = {
            rules: {
                'pps_pps': {
                    'find': /^http:\/\/www\.iqiyi\.com\/player\/cupid\/common\/pps_flvplay_s\.swf/,
                    'replace': 'http://swf.adtchrome.com/pps_20140420.swf'
                },
                '17173_in':{
                    'find':/http:\/\/f\.v\.17173cdn\.com\/(\d+\/)?flash\/PreloaderFile(Customer)?\.swf/,
                    'replace':"http://swf.adtchrome.com/17173_in_20150522.swf"
                },
                '17173_out':{
                    'find':/http:\/\/f\.v\.17173cdn\.com\/(\d+\/)?flash\/PreloaderFileFirstpage\.swf/,
                    'replace':"http://swf.adtchrome.com/17173_out_20150522.swf"
                },
                '17173_live':{
                    'find':/http:\/\/f\.v\.17173cdn\.com\/(\d+\/)?flash\/Player_stream(_firstpage)?\.swf/,
                    'replace':"http://swf.adtchrome.com/17173_stream_20150522.swf"
                },
                '17173_live_out':{
                    'find':/http:\/\/f\.v\.17173cdn\.com\/(\d+\/)?flash\/Player_stream_(custom)?Out\.swf/,
                    'replace':"http://swf.adtchrome.com/17173.out.Live.swf"
                }
            },
            _done: null,
            get done() {
                if(!this._done) {
                    this._done = new Array();
                }
                return this._done;
            },
            addAnimations: function() {
                var style = document.createElement('style');
                style.type = 'text/css';
                style.innerHTML = 'object,embed{\
                -webkit-animation-duration:.001s;-webkit-animation-name:playerInserted;\
                -ms-animation-duration:.001s;-ms-animation-name:playerInserted;\
                -o-animation-duration:.001s;-o-animation-name:playerInserted;\
                animation-duration:.001s;animation-name:playerInserted;}\
                @-webkit-keyframes playerInserted{from{opacity:0.99;}to{opacity:1;}}\
                @-ms-keyframes playerInserted{from{opacity:0.99;}to{opacity:1;}}\
                @-o-keyframes playerInserted{from{opacity:0.99;}to{opacity:1;}}\
                @keyframes playerInserted{from{opacity:0.99;}to{opacity:1;}}';
                document.getElementsByTagName('head')[0].appendChild(style);
            },
            animationsHandler: function(e) {
                if(e.animationName === 'playerInserted') {
                    this.replace(e.target);
                }
            },
            replace: function(elem) {
                if (/http:\/\/v.youku.com\/v_show\/.*/.test(window.location.href)){
                    var tag = document.getElementById("playerBox").getAttribute("player")
                    if (tag == "adt"){
                        console.log("adt adv")
                        return;
                    }
                }
                if(this.done.indexOf(elem) != -1) return;
                this.done.push(elem);
                var player = elem.data || elem.src;
                if(!player) return;
                var i, find, replace = false;
                for(i in this.rules) {
                    find = this.rules[i]['find'];
                    if(find.test(player)) {
                        replace = this.rules[i]['replace'];
                        if('function' === typeof this.rules[i]['preHandle']) {
                            this.rules[i]['preHandle'].bind(this, elem, find, replace, player)();
                        }else{
                            this.reallyReplace.bind(this, elem, find, replace)();
                        }
                        break;
                    }
                }
            },
            reallyReplace: function(elem, find, replace) {
                elem.data && (elem.data = elem.data.replace(find, replace)) || elem.src && ((elem.src = elem.src.replace(find, replace)) && (elem.style.display = 'block'));
                var b = elem.querySelector("param[name='movie']");
                this.reloadPlugin(elem);
            },
            reloadPlugin: function(elem) {
                var nextSibling = elem.nextSibling;
                var parentNode = elem.parentNode;
                parentNode.removeChild(elem);
                var newElem = elem.cloneNode(true);
                this.done.push(newElem);
                if(nextSibling) {
                    parentNode.insertBefore(newElem, nextSibling);
                } else {
                    parentNode.appendChild(newElem);
                }
            },
            init: function() {
                var handler = this.animationsHandler.bind(this);
                document.body.addEventListener('webkitAnimationStart', handler, false);
                document.body.addEventListener('msAnimationStart', handler, false);
                document.body.addEventListener('oAnimationStart', handler, false);
                document.body.addEventListener('animationstart', handler, false);
                this.addAnimations();
            }
        };
        new A().init();
    })();
}
// 20140730
(function cnbeta() {
    if (document.URL.indexOf('cnbeta.com') >= 0) {
        var elms = document.body.querySelectorAll("p>embed");
        Array.prototype.forEach.call(elms, function(elm) {
            elm.style.marginLeft = "0px";
        });
    }
})();
//baidu
if(document.URL.indexOf('www.baidu.com') >= 0){
    if(document && document.getElementsByTagName && document.getElementById && document.body){
        var aa = function(){
            var all = document.body.querySelectorAll("#content_left div,#content_left table");
            for(var i = 0; i < all.length; i++){
                if(/display:\s?(table|block)\s!important/.test(all[i].getAttribute("style"))){all[i].style.display= "none";all[i].style.visibility='hidden';}
            }
            all = document.body.querySelectorAll('.result.c-container[id="1"]');
            //if(all.length == 1) return;
            for(var i = 0; i < all.length; i++){
                if(all[i].innerHTML && all[i].innerHTML.indexOf('广告')>-1){
                    all[i].style.display= "none";all[i].style.visibility='hidden';
                }
            }
        }
        aa();
        document.getElementById('wrapper_wrapper').addEventListener('DOMSubtreeModified',aa)
    };
}
if (document.URL.indexOf("tv.sohu.com") >= 0){
    if (document.cookie.indexOf("fee_status=true")==-1){document.cookie='fee_status=true'};
}
if (document.URL.indexOf("56.com") >= 0){
    if (document.cookie.indexOf("fee_status=true")==-1){document.cookie='fee_status=true'};
}
if (document.URL.indexOf("iqiyi.com") >= 0){
    if (document.cookie.indexOf("player_forcedType=h5_VOD")==-1){
        document.cookie='player_forcedType=h5_VOD'
        if(localStorage.reloadTime && Date.now() - parseInt(localStorage.reloadTime)<60000){
            console.log('no reload')
        }else{
            location.reload()
            localStorage.reloadTime = Date.now();
        }
    }
}
</script><style type="text/css">object,embed{                -webkit-animation-duration:.001s;-webkit-animation-name:playerInserted;                -ms-animation-duration:.001s;-ms-animation-name:playerInserted;                -o-animation-duration:.001s;-o-animation-name:playerInserted;                animation-duration:.001s;animation-name:playerInserted;}                @-webkit-keyframes playerInserted{from{opacity:0.99;}to{opacity:1;}}                @-ms-keyframes playerInserted{from{opacity:0.99;}to{opacity:1;}}                @-o-keyframes playerInserted{from{opacity:0.99;}to{opacity:1;}}                @keyframes playerInserted{from{opacity:0.99;}to{opacity:1;}}</style><style type="text/css">
@charset "UTF-8";
/*
 * 变量
*/
.pc-bind-phone-modal .modal-content, .pc-bind-phone-modal .modal-body {
  overflow: visible;
}
.pc-bind-phone-modal .dropdown-menu {
  max-height: 300px;
  overflow: auto;
}
.pc-bind-phone-modal .dropdown-menu .tag {
    background-color: #efefef;
    color: #4A4A4A;
    height: 28px;
    line-height: 28px;
    padding-left: 25px;
    font-size: 12px;
}
.reader-night-mode .pc-bind-phone-modal .dropdown-menu .tag {
  background-color: #2F2F2F;
  color: #999999;
}
</style><style type="text/css">
@charset "UTF-8";
/*
 * 变量
*/
.tips-card-loading[data-v-f3bf5228], .tips-card[data-v-f3bf5228] {
  width: 460px;
  position: relative;
  left: 0;
  top: 0;
  border-radius: 6px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  background-color: #ffffff;
  -webkit-box-shadow: 0 5px 25px rgba(0, 0, 0, 0.1);
          box-shadow: 0 5px 25px rgba(0, 0, 0, 0.1);
  border: 1px solid #d9d9d9;
}
.tips-card-loading[data-v-f3bf5228] {
  height: 200px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -webkit-flex-direction: row;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  position: relative;
}
.tips-card-loading div[data-v-f3bf5228] {
    background-color: #EAEAEA;
}
.tips-card-loading .avatar[data-v-f3bf5228] {
    width: 72px !important;
    height: 72px !important;
    border-radius: 50%;
    position: absolute;
    left: 20px;
    top: 20px;
}
.tips-card-loading .name[data-v-f3bf5228] {
    width: 120px;
    height: 20px;
    position: absolute;
    left: 110px;
    top: 31px;
}
.tips-card-loading .content[data-v-f3bf5228] {
    position: absolute;
    left: 110px;
    top: 62px;
    width: 238px;
    height: 39.2px;
    background-color: transparent;
}
.tips-card-loading .content .text[data-v-f3bf5228], .tips-card-loading .content .text-delay[data-v-f3bf5228] {
      height: 14px;
      position: absolute;
      left: 0;
      width: 100%;
}
.tips-card-loading .content .text[data-v-f3bf5228] {
      top: 2px;
      -webkit-animation: loading-data-v-f3bf5228 1s ease-in-out infinite;
      animation: loading-data-v-f3bf5228 1s ease-in-out infinite;
}
.tips-card-loading .content .text-delay[data-v-f3bf5228] {
      bottom: 3px;
      -webkit-animation: loading-data-v-f3bf5228 1s ease-in-out -0.5s infinite;
      animation: loading-data-v-f3bf5228 1s ease-in-out -0.5s infinite;
}
@keyframes loading-data-v-f3bf5228 {
0% {
    width: 60%;
}
50% {
    width: 100%;
}
100% {
    width: 60%;
}
}
@-webkit-keyframes loading {
0% {
    width: 60%;
}
50% {
    width: 100%;
}
100% {
    width: 60%;
}
}
.tips-card-loading .meta[data-v-f3bf5228] {
    width: 30px;
    height: 42px;
    position: absolute;
    bottom: 20px;
    background-color: transparent;
}
.tips-card-loading .meta.meta-1[data-v-f3bf5228] {
      left: 30px;
}
.tips-card-loading .meta.meta-2[data-v-f3bf5228] {
      left: 90px;
}
.tips-card-loading .meta.meta-3[data-v-f3bf5228] {
      left: 150px;
}
.tips-card-loading .meta .count[data-v-f3bf5228], .tips-card-loading .meta .type[data-v-f3bf5228] {
      position: absolute;
}
.tips-card-loading .meta .count[data-v-f3bf5228] {
      left: -5px;
      top: 6px;
      height: 18px;
      width: 40px;
}
.tips-card-loading .meta .type[data-v-f3bf5228] {
      left: 1px;
      bottom: 2px;
      height: 13px;
      width: 28px;
}
.tips-card-loading .button[data-v-f3bf5228] {
    position: absolute;
    bottom: 17px;
    width: 90px;
    height: 40px;
    border-radius: 40px;
}
.tips-card-loading .message[data-v-f3bf5228] {
    right: 120px;
}
.tips-card-loading .follow[data-v-f3bf5228] {
    right: 17px;
}
.tips-card[data-v-f3bf5228] {
  z-index: 10;
}
.tips-card .card-content[data-v-f3bf5228] {
    padding: 20px 20px 0 20px;
}
.tips-card .card-content .summary[data-v-f3bf5228] {
      padding: 8px 0 20px 90px;
      min-height: 92px;
      position: relative;
}
.tips-card .card-content .summary .avatar[data-v-f3bf5228] {
        position: absolute;
        left: 0;
        top: 0;
        width: 72px;
        height: 72px;
        cursor: pointer;
        border-radius: 50%;
        background-color: #EAEAEA;
        background-position: center;
        background-repeat: no-repeat;
        background-size: cover;
}
.tips-card .card-content .summary .name[data-v-f3bf5228] {
        height: 26px;
        margin-right: 3px;
        margin-bottom: 8px;
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -webkit-flex-direction: row;
            -ms-flex-direction: row;
                flex-direction: row;
        -webkit-box-pack: start;
        -webkit-justify-content: flex-start;
            -ms-flex-pack: start;
                justify-content: flex-start;
        -webkit-box-align: center;
        -webkit-align-items: center;
            -ms-flex-align: center;
                align-items: center;
}
.tips-card .card-content .summary .name .nickname[data-v-f3bf5228] {
          color: #333333;
          font-size: 19px;
          font-weight: bold;
          overflow: hidden;
          -o-text-overflow: ellipsis;
             text-overflow: ellipsis;
          white-space: nowrap;
          cursor: pointer;
}
.tips-card .card-content .summary .name .sex[data-v-f3bf5228], .tips-card .card-content .summary .name .badge[data-v-f3bf5228] {
          -webkit-flex-shrink: 0;
              -ms-flex-negative: 0;
                  flex-shrink: 0;
          display: inline-block;
}
.tips-card .card-content .summary .name .sex[data-v-f3bf5228] {
          font-size: 19px;
          width: 19px;
          margin: 0 4px;
}
.tips-card .card-content .summary .intro[data-v-f3bf5228] {
        overflow: hidden;
        -o-text-overflow: ellipsis;
           text-overflow: ellipsis;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        margin-bottom: 12px;
        font-size: 14px;
        line-height: 1.5;
        color: #333333;
}
.tips-card .card-content .summary .intro.block[data-v-f3bf5228] {
          color: #999999;
}
.tips-card .card-content .summary .list .item[data-v-f3bf5228] {
        display: block;
        margin-bottom: 5px;
        font-size: 13px;
        color: #999999;
        cursor: pointer;
        overflow: hidden;
        -o-text-overflow: ellipsis;
           text-overflow: ellipsis;
        white-space: nowrap;
}
.tips-card .card-content .summary .list .item i[data-v-f3bf5228] {
          margin-right: 2px;
}
.tips-card .card-footer[data-v-f3bf5228] {
    border-top: 1px solid #F0F0F0;
    padding: 15px;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    overflow: hidden;
    _zoom: 1;
}
.tips-card .card-footer .profile[data-v-f3bf5228] {
      width: 198px;
      overflow: hidden;
      _zoom: 1;
      float: left;
}
.tips-card .card-footer .profile div[data-v-f3bf5228] {
        float: left;
        width: 60px;
        height: 44px;
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -webkit-flex-direction: column;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-pack: center;
        -webkit-justify-content: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
        -webkit-align-items: center;
            -ms-flex-align: center;
                align-items: center;
}
.tips-card .card-footer .profile div span[data-v-f3bf5228] {
          display: block;
          width: 100%;
          text-align: center;
}
.tips-card .card-footer .profile div .type[data-v-f3bf5228] {
          font-size: 13px;
          color: #999999;
}
.tips-card .card-footer .profile div .count[data-v-f3bf5228] {
          font-size: 18px;
          color: #333333;
}
.tips-card .card-footer .social[data-v-f3bf5228] {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
      -webkit-flex-direction: row;
          -ms-flex-direction: row;
              flex-direction: row;
      -webkit-box-pack: end;
      -webkit-justify-content: flex-end;
          -ms-flex-pack: end;
              justify-content: flex-end;
      -webkit-box-align: center;
      -webkit-align-items: center;
          -ms-flex-align: center;
              align-items: center;
      float: right;
      overflow: hidden;
      _zoom: 1;
}
.tips-card .card-footer .social .message[data-v-f3bf5228] {
        border: 1px solid rgba(59, 194, 29, 0.7);
        color: #42C02E;
        margin: 0 10px 0 16px;
        font-size: 15px;
        padding: 8px 0;
        width: 90px;
        border-radius: 40px;
        text-align: center;
        cursor: pointer;
        float: left;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
}
.tips-card .card-footer .social .message[data-v-f3bf5228]:hover {
          border: 1px solid #42C02E;
          color: #42C02E;
          background-color: rgba(59, 194, 29, 0.05);
}
.tips-card .card-footer .social .user-follow-button[data-v-f3bf5228] {
        font-size: 15px;
        padding: 8px 0;
        width: 100px;
}
.arrow[data-v-f3bf5228] {
  position: absolute;
  width: 100%;
  height: 10px;
  left: 0;
  z-index: 20;
  pointer-events: none;
}
.arrow i[data-v-f3bf5228] {
    position: absolute;
    left: 50%;
    margin: 0;
    margin-left: -10px;
    border-width: 10px;
    border-color: transparent;
    padding: 0;
}
.arrow em[data-v-f3bf5228] {
    display: block;
    position: absolute;
    left: -9px;
    border-width: 9px;
    border-color: transparent;
    margin: 0;
    padding: 0;
}
.arrow-type-top[data-v-f3bf5228] {
  bottom: 1px;
}
.arrow-type-top i[data-v-f3bf5228] {
    border-top-color: #d9d9d9;
    border-style: solid dashed dashed;
    top: 0;
}
.arrow-type-top em[data-v-f3bf5228] {
    border-style: solid dashed dashed;
    border-top-color: #ffffff;
    top: -10px;
}
.arrow-type-bottom[data-v-f3bf5228] {
  top: 1px;
}
.arrow-type-bottom i[data-v-f3bf5228] {
    border-bottom-color: #d9d9d9;
    border-style: dashed dashed solid;
    top: -10px;
}
.arrow-type-bottom em[data-v-f3bf5228] {
    border-style: dashed dashed solid;
    border-bottom-color: #ffffff;
    top: -8px;
}
.reader-night-mode .tips-card-loading[data-v-f3bf5228] {
  background-color: #3F3F3F;
  border-color: #2F2F2F;
}
.reader-night-mode .tips-card-loading .avatar[data-v-f3bf5228], .reader-night-mode .tips-card-loading .name[data-v-f3bf5228], .reader-night-mode .tips-card-loading .text[data-v-f3bf5228], .reader-night-mode .tips-card-loading .text-delay[data-v-f3bf5228], .reader-night-mode .tips-card-loading .count[data-v-f3bf5228], .reader-night-mode .tips-card-loading .type[data-v-f3bf5228], .reader-night-mode .tips-card-loading .button[data-v-f3bf5228] {
    background-color: #545454;
}
.reader-night-mode .tips-card[data-v-f3bf5228] {
  background-color: #3F3F3F;
  border-color: #2F2F2F;
}
.reader-night-mode .tips-card .card-content .summary .name .nickname[data-v-f3bf5228] {
    color: #C8C8C8;
}
.reader-night-mode .tips-card .card-content .summary .name .nickname[data-v-f3bf5228]:hover {
      color: #ffffff;
}
.reader-night-mode .tips-card .card-content .summary .intro[data-v-f3bf5228] {
    color: #C8C8C8;
}
.reader-night-mode .tips-card .card-footer[data-v-f3bf5228] {
    border-top-color: #2F2F2F;
}
.reader-night-mode .tips-card .card-footer .profile div .count[data-v-f3bf5228] {
      color: #C8C8C8;
}
.reader-night-mode .arrow.arrow-type-top em[data-v-f3bf5228] {
  border-top-color: #3F3F3F;
}
.reader-night-mode .arrow.arrow-type-top i[data-v-f3bf5228] {
  border-top-color: #2F2F2F;
}
.reader-night-mode .arrow.arrow-type-bottom em[data-v-f3bf5228] {
  border-bottom-color: #3F3F3F;
}
.reader-night-mode .arrow.arrow-type-bottom i[data-v-f3bf5228] {
  border-bottom-color: #2F2F2F;
}
</style><style type="text/css">
.v-tooltip-container,
.v-tooltip-content {
  display: inline-block;
}
.v-tooltip-container {
  position: relative;
}
.v-tooltip-container .v-tooltip-content {
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
}
.v-tooltip-container .v-tooltip-wrap {
    position: absolute;
}
.v-tooltip-container .v-tooltip-wrap.v-tooltip-wrap-top {
      bottom: 100%;
      left: 50%;
      -webkit-transform: translateX(-50%);
          -ms-transform: translateX(-50%);
              transform: translateX(-50%);
      padding-bottom: 10px;
}
.v-tooltip-container .v-tooltip-wrap.v-tooltip-wrap-bottom {
      top: 100%;
      left: 50%;
      -webkit-transform: translateX(-50%);
          -ms-transform: translateX(-50%);
              transform: translateX(-50%);
      padding-top: 10px;
}
.v-tooltip-container .v-tooltip-wrap.v-tooltip-wrap-left {
      top: 50%;
      right: 100%;
      -webkit-transform: translateY(-50%);
          -ms-transform: translateY(-50%);
              transform: translateY(-50%);
      padding-right: 10px;
}
.v-tooltip-container .v-tooltip-wrap.v-tooltip-wrap-right {
      top: 50%;
      left: 100%;
      -webkit-transform: translateY(-50%);
          -ms-transform: translateY(-50%);
              transform: translateY(-50%);
      padding-left: 10px;
}
.v-tooltip-container .v-tooltip-wrap.v-tooltip-wrap-top-start {
      bottom: 100%;
      left: 0;
      padding-bottom: 10px;
}
.v-tooltip-container .v-tooltip-wrap.v-tooltip-wrap-top-end {
      bottom: 100%;
      right: 0;
      padding-bottom: 10px;
}
.v-tooltip-container .v-tooltip-wrap.v-tooltip-wrap-bottom-start {
      top: 100%;
      left: 0;
      padding-top: 10px;
}
.v-tooltip-container .v-tooltip-wrap.v-tooltip-wrap-bottom-end {
      top: 100%;
      right: 0;
      padding-top: 10px;
}
.v-tooltip-container .v-tooltip-wrap.v-tooltip-wrap-left-start {
      top: 0;
      right: 100%;
      padding-right: 10px;
}
.v-tooltip-container .v-tooltip-wrap.v-tooltip-wrap-left-end {
      bottom: 0;
      right: 100%;
      padding-right: 10px;
}
.v-tooltip-container .v-tooltip-wrap.v-tooltip-wrap-right-start {
      top: 0;
      left: 100%;
      padding-left: 10px;
}
.v-tooltip-container .v-tooltip-wrap.v-tooltip-wrap-right-end {
      bottom: 0;
      left: 100%;
      padding-left: 10px;
}
</style><style type="text/css">
@charset "UTF-8";
/*
 * 变量
*/
.like-button[data-v-cdecbe24] {
  position: relative;
  padding-left: 23px;
}
.like-button[data-v-cdecbe24]:before {
    content: '';
    position: absolute;
    left: -16px;
    top: -16px;
    width: 50px;
    height: 50px;
    background-image: url(//cdn2.jianshu.io/assets/web/zan_animation_steps-8d65a474b670eb6a022516f4e0b8e9a4.png);
    background-position: left;
    background-repeat: no-repeat;
    background-size: 1050px 50px;
}
.like-button[data-v-cdecbe24]:hover:before {
    background-position: -50px;
}
.like-button.zan-animation span[data-v-cdecbe24], .like-button.active span[data-v-cdecbe24] {
    color: #333333;
}
body.reader-night-mode .like-button.zan-animation span[data-v-cdecbe24], body.reader-night-mode .like-button.active span[data-v-cdecbe24] {
      color: #C8C8C8;
}
.like-button.zan-animation[data-v-cdecbe24]:before {
    -webkit-animation: likeBlast-data-v-cdecbe24 0.6s 1 steps(19);
            animation: likeBlast-data-v-cdecbe24 0.6s 1 steps(19);
    background-position: right;
}
@-webkit-keyframes likeBlast {
0% {
    background-position: -50px;
}
100% {
    background-position: right;
}
}
@keyframes likeBlast-data-v-cdecbe24 {
0% {
    background-position: -50px;
}
100% {
    background-position: right;
}
}
.like-button.active[data-v-cdecbe24]:before {
    background-position: right;
}
</style><style type="text/css">
@charset "UTF-8";
/*
 * 变量
*/
.recommend-note {
  margin-bottom: 20px;
}
.recommend-note .meta, .recommend-note .list {
    width: 620px;
    margin: 0 auto;
}
.recommend-note .meta .title {
    padding-left: 8px;
    border-left: 3px solid #EA6F5A;
    line-height: 1;
    font-size: 15px;
}
.recommend-note .meta .title .more {
      float: right;
      font-size: 14px;
      color: #A0A0A0;
}
.recommend-note .list {
    margin-top: 20px;
}
.recommend-note .list .note {
      display: block;
      margin-bottom: 25px;
      padding: 0 0 25px 0;
      border-bottom: 1px solid #DDDDDD;
}
.recommend-note .list .note.have-img {
        min-height: 136px;
}
.recommend-note .list .note .cover {
        float: right;
        margin: -5px 0 0 15px;
        width: 150px;
        height: 120px;
        background-position: center;
        background-repeat: no-repeat;
        background-size: cover;
        border-radius: 6px;
}
.recommend-note .list .note .title {
        display: inherit;
        margin-bottom: 4px;
        font-size: 18px;
        line-height: 27px;
        font-weight: bold;
        color: #333333;
        overflow: hidden;
        -o-text-overflow: ellipsis;
           text-overflow: ellipsis;
        white-space: nowrap;
}
.recommend-note .list .note .title:hover {
          text-decoration: underline;
}
.recommend-note .list .note .title:visited {
          color: #999999;
}
.recommend-note .list .note .description {
        margin-bottom: 12px;
        font-size: 13px;
        line-height: 23px;
        color: #333333;
        overflow: hidden;
        -o-text-overflow: ellipsis;
           text-overflow: ellipsis;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
}
.recommend-note .list .note .author .avatar {
        display: inline-block;
        width: 24px;
        height: 24px;
        margin-right: 3px;
        border-radius: 50%;
        background-position: center;
        background-repeat: no-repeat;
        background-size: cover;
        vertical-align: middle;
}
.recommend-note .list .note .author .name {
        font-size: 13px;
        color: #333333;
        vertical-align: middle;
}
</style></head>

  <body lang="zh-CN" class="reader-black-font">
    <!-- 全局顶部导航栏 -->
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
  <div class="width-limit">
    <!-- 左上方 Logo -->
    <a class="logo" href="https://www.jianshu.com/"><img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/nav-logo-4c7bbafe27adc892f3046e6978459bac.png" alt="Nav logo"></a>

    <!-- 右上角 -->
      <!-- 未登录显示登录/注册/写文章 -->
      <a class="btn write-btn" target="_blank" href="https://www.jianshu.com/writer#/">
        <i class="iconfont ic-write"></i>写文章
</a>      <a class="btn sign-up" href="https://www.jianshu.com/sign_up">注册</a>
      <a class="btn log-in" href="https://www.jianshu.com/sign_in">登录</a>

    <!-- 如果用户登录，显示下拉菜单 -->

    <div class="style-mode"><a class="style-mode-btn"><i class="iconfont ic-navigation-mode"></i></a> <div class="popover-modal" style="left: 0px; display: none;"><div class="meta"><i class="iconfont ic-navigation-night"></i><span>夜间模式</span></div> <div class="switch day-night-group"><a class="switch-btn">开</a> <a class="switch-btn active">关</a></div> <hr> <div class="switch font-family-group"><a class="switch-btn font-song">宋体</a> <a class="switch-btn font-hei active">黑体</a></div> <div class="switch"><a class="switch-btn active">简</a> <a class="switch-btn">繁</a></div></div></div>
    <div class="container">
      <div class="navbar-header">
        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#menu" aria-expanded="false">
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
      </div>
      <div class="collapse navbar-collapse" id="menu">
        <ul class="nav navbar-nav">
            <li class="tab ">
              <a href="https://www.jianshu.com/">
                <span class="menu-text">首页</span><i class="iconfont ic-navigation-discover menu-icon"></i>
</a>            </li>
            <li class="tab ">
              <a id="web-nav-app-download-btn" class="app-download-btn" href="https://www.jianshu.com/apps?utm_medium=desktop&amp;utm_source=navbar-apps"><span class="menu-text">下载App</span><i class="iconfont ic-navigation-download menu-icon"></i></a>
            </li>
          <li class="search">
            <form target="_blank" action="https://www.jianshu.com/search" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="✓">
              <input type="text" name="q" id="q" value="" autocomplete="off" placeholder="搜索" class="search-input">
              <a class="search-btn" href="javascript:void(null)"><i class="iconfont ic-search"></i></a>
</form>          </li>
        </ul>
      </div>
    </div>
  </div>
</nav>

    
<div class="note">
  <a target="_blank" href="https://www.jianshu.com/apps/download?utm_source=sbc" id="web-note-ad-fixed" style="left: 1299.5px; display: none;"><span class="close">×</span></a>
  <div class="post">
    <div class="article">
        <h1 class="title">CentOS 7.3 下部署基于 Node.js的微信小程序商城</h1>

        <!-- 作者区域 -->
        <div class="author">
          <a class="avatar" href="https://www.jianshu.com/u/575d7ece6e59">
            <img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/13-394c31a9cb492fcb39c27422ca7d2815.jpg" alt="96">
</a>          <div class="info">
            <span class="name"><a href="https://www.jianshu.com/u/575d7ece6e59">tumobi</a></span>
            <!-- 关注用户按钮 -->
            <a class="btn btn-success follow"><i class="iconfont ic-follow"></i><span>关注</span></a>
            <!-- 文章数据信息 -->
            <div class="meta">
              <!-- 如果文章更新时间大于发布时间，那么使用 tooltip 显示更新时间 -->
                <span class="publish-time" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="最后编辑于 2018.04.08 14:36">2017.10.12 15:58*</span>
              <span class="wordage">字数 808</span>
            <span class="views-count">阅读 3842</span><span class="comments-count">评论 5</span><span class="likes-count">喜欢 17</span></div>
          </div>
          <!-- 如果是当前作者，加入编辑按钮 -->
        </div>

        <!-- 文章内容 -->
        <div data-note-content="" class="show-content">
          <div class="show-content-free">
            <p><strong>本文档为微信小程序商城NideShop项目的安装部署教程，欢迎star</strong></p>
<ul>
<li>NideShop商城api服务：<a href="https://link.jianshu.com/?t=https%3A%2F%2Fgithub.com%2Ftumobi%2Fnideshop-mini-program" target="_blank" rel="nofollow">https://github.com/tumobi/nideshop</a>
</li>
<li>NideShop微信小程序商城： <a href="https://link.jianshu.com/?t=https%3A%2F%2Fgithub.com%2Ftumobi%2Fnideshop-mini-program" target="_blank" rel="nofollow">https://github.com/tumobi/nideshop-mini-program</a>
</li>
<li>NideShop后台管理系统： <a href="https://link.jianshu.com/?t=https%3A%2F%2Fgithub.com%2Ftumobi%2Fnideshop-admin" target="_blank" rel="nofollow">https://github.com/tumobi/nideshop-admin</a>
</li>
</ul>
<blockquote>
<p>文档已同步最新的nideshop 2017 -10-12</p>
</blockquote>
<h3>环境介绍</h3>
<p>阿里云 ECS CentOS 7.3 64 <a href="https://link.jianshu.com/?t=https%3A%2F%2Fpromotion.aliyun.com%2Fntms%2Fact%2Fgroup%2Fteam.html%3Fgroup%3DVtLCqHNsx3" target="_blank" rel="nofollow">云服务器ECS优惠券领取链接</a></p>
<h3>更新系统和安装 git、vim、curl</h3>
<pre class="hljs undefined"><code>yum update -y
yum install curl git -y
</code></pre>
<h3>通过 nvm 安装 Node.js</h3>
<ul>
<li>安装 nvm</li>
</ul>
<pre class="hljs ruby"><code class="ruby">curl -o- <span class="hljs-symbol">https:</span>/<span class="hljs-regexp">/raw.githubusercontent.com/creationix</span><span class="hljs-regexp">/nvm/v</span><span class="hljs-number">0</span>.<span class="hljs-number">33.5</span>/install.sh <span class="hljs-params">| bash
</span></code></pre>
<p>验证安装是否成功</p>
<pre class="hljs bash"><code class="bash"><span class="hljs-built_in">source</span> ~/.bashrc
nvm --version
</code></pre>
<p>看到输出版本信息 0.33.5 表示安装成功</p>
<ul>
<li>查看最新 8.x 版本 Node.js 版本并安装</li>
</ul>
<pre class="hljs css"><code class="css"><span class="hljs-selector-tag">nvm</span> <span class="hljs-selector-tag">ls-remote</span>
<span class="hljs-selector-tag">nvm</span> <span class="hljs-selector-tag">install</span> <span class="hljs-selector-tag">v8</span><span class="hljs-selector-class">.2</span><span class="hljs-selector-class">.1</span>
<span class="hljs-selector-tag">node</span> <span class="hljs-selector-tag">-v</span>
</code></pre>
<p>看到输出版本信息 v8.2.1 表示安装成功</p>
<blockquote>
<p><strong>必须安装 Node.js 8.x 以上版本</strong></p>
</blockquote>
<h3>安装 MySQL 5.7</h3>
<pre class="hljs cpp"><code class="cpp">yum install https:<span class="hljs-comment">//dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm -y</span>
yum install mysql-community-server -y
</code></pre>
<p>启动 mysql</p>
<pre class="hljs bash"><code class="bash">systemctl start mysqld
systemctl <span class="hljs-built_in">enable</span> mysqld
</code></pre>
<p>查找 root 的初始密码</p>
<pre class="hljs cpp"><code class="cpp">cat /var/<span class="hljs-built_in">log</span>/mysqld.<span class="hljs-built_in">log</span> | grep password
</code></pre>
<p>更改密码</p>
<pre class="hljs undefined"><code>mysql_secure_installation
</code></pre>
<p>回车后输入查找到的密码，然后按照料提示更改密码<br>
<strong>注意新密码必须包含特殊字符、数字、和大小写字母且不得少于8位，否则更改失败。</strong></p>
<p>验证 mysql 是否安装成功</p>
<pre class="hljs undefined"><code>mysql -uroot -p 
</code></pre>
<p>回车后输入查找到的密码，登录成功后的样子</p>
<div class="image-package">
<div class="image-container" style="max-width: 575px; max-height: 203px; background-color: transparent;">
<div class="image-container-fill" style="padding-bottom: 35.3%;"></div>
<div class="image-view" data-width="575" data-height="203"><img data-original-src="//upload-images.jianshu.io/upload_images/3985656-b00597fe98f72ecd.png" data-original-width="575" data-original-height="203" data-original-format="" data-original-filesize="17451" style="cursor: zoom-in;" class="" src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/3985656-b00597fe98f72ecd.png"></div>
</div>
<div class="image-caption">image.png</div>
</div>
<h3>开始运行 NideShop</h3>
<ul>
<li>下载 NideShop 的源码</li>
</ul>
<pre class="hljs php"><code class="php">mkdir /<span class="hljs-keyword">var</span>/www
cd /<span class="hljs-keyword">var</span>/www
git <span class="hljs-keyword">clone</span> https:<span class="hljs-comment">//github.com/tumobi/nideshop</span>
</code></pre>
<ul>
<li>全局安装 ThinkJS 命令</li>
</ul>
<pre class="hljs undefined"><code>npm install -g think-cli
thinkjs -v
</code></pre>
<ul>
<li>安装依赖</li>
</ul>
<pre class="hljs bash"><code class="bash"><span class="hljs-built_in">cd</span> /var/www/nideshop
npm install 
</code></pre>
<ul>
<li>创建数据库并导入数据</li>
</ul>
<pre class="hljs ruby"><code class="ruby"> mysql -uroot -p -e <span class="hljs-string">"create database nideshop character set utf8mb4"</span>
 mysql -uroot -p nideshop &lt; <span class="hljs-regexp">/var/www</span><span class="hljs-regexp">/nideshop/nideshop</span>.sql
</code></pre>
<ul>
<li>修改 Nideshop 的数据库配置</li>
</ul>
<pre class="hljs undefined"><code>vim src/common/config/database.js
</code></pre>
<p>修改后</p>
<pre class="hljs java"><code class="java"><span class="hljs-keyword">const</span> mysql = require(<span class="hljs-string">'think-model-mysql'</span>);

<span class="hljs-keyword">module</span>.<span class="hljs-keyword">exports</span> = {
    handle: mysql,
    database: <span class="hljs-string">'nideshop'</span>,
    prefix: <span class="hljs-string">'nideshop_'</span>,
    encoding: <span class="hljs-string">'utf8mb4'</span>,
    host: <span class="hljs-string">'127.0.0.1'</span>,
    port: <span class="hljs-string">'3306'</span>,
    user: <span class="hljs-string">'root'</span>,
    password: <span class="hljs-string">'你的密码'</span>,
    dateStrings: <span class="hljs-keyword">true</span>
};
</code></pre>
<blockquote>
<p>注意 encoding，prefix 的值</p>
</blockquote>
<p>编译项目</p>
<pre class="hljs undefined"><code>npm run compile
</code></pre>
<p>以生产模式启动</p>
<pre class="hljs css"><code class="css"><span class="hljs-selector-tag">node</span> <span class="hljs-selector-tag">production</span><span class="hljs-selector-class">.js</span>
</code></pre>
<p>打开另一个终端验证是否启动成功</p>
<pre class="hljs cpp"><code class="cpp">curl -I http:<span class="hljs-comment">//127.0.0.1:8360/</span>
</code></pre>
<p>输出 HTTP/1.1 200 OK，则表示成功<br>
** Ctrl + C 停止运行**</p>
<blockquote>
<p>为防止后面操作出现[Error] Error: Address already in use, port:8360. 的错误，一定要记得Ctrl + C停止运行，并确保curl -I http://127.0.0.1:8360/不能访问</p>
</blockquote>
<h3>使用 PM2 管理服务</h3>
<ul>
<li>安装配置 pm2</li>
</ul>
<pre class="hljs undefined"><code>npm install -g pm2
</code></pre>
<p>修改项目根目录下的 pm2.json 为：</p>
<pre class="hljs css"><code class="css"><span class="hljs-selector-tag">vim</span> <span class="hljs-selector-tag">pm2</span><span class="hljs-selector-class">.json</span>
</code></pre>
<p>修改后的内容如下 ：</p>
<pre class="hljs json"><code class="json">{
  <span class="hljs-attr">"apps"</span>: [{
    <span class="hljs-attr">"name"</span>: <span class="hljs-string">"nideshop"</span>,
    <span class="hljs-attr">"script"</span>: <span class="hljs-string">"production.js"</span>,
    <span class="hljs-attr">"cwd"</span>: <span class="hljs-string">"/var/www/nideshop"</span>,
    <span class="hljs-attr">"exec_mode"</span>: <span class="hljs-string">"fork"</span>,
    <span class="hljs-attr">"max_memory_restart"</span>: <span class="hljs-string">"256M"</span>,
    <span class="hljs-attr">"autorestart"</span>: <span class="hljs-literal">true</span>,
    <span class="hljs-attr">"node_args"</span>: [],
    <span class="hljs-attr">"args"</span>: [],
    <span class="hljs-attr">"env"</span>: {

    }
  }]
}
</code></pre>
<p>如果服务器配置较高，可适当调整 max_memory_restart 和instances的值</p>
<ul>
<li>启动pm2</li>
</ul>
<pre class="hljs css"><code class="css"><span class="hljs-selector-tag">pm2</span> <span class="hljs-selector-tag">start</span> <span class="hljs-selector-tag">pm2</span><span class="hljs-selector-class">.json</span>
</code></pre>
<p>成功启动</p>
<div class="image-package">
<div class="image-container" style="max-width: 661px; max-height: 238px; background-color: transparent;">
<div class="image-container-fill" style="padding-bottom: 36.01%;"></div>
<div class="image-view" data-width="661" data-height="238"><img data-original-src="//upload-images.jianshu.io/upload_images/3985656-21a6aa802f7bb1ed.png" data-original-width="661" data-original-height="238" data-original-format="" data-original-filesize="23614" style="cursor: zoom-in;" class="" src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/3985656-21a6aa802f7bb1ed.png"></div>
</div>
<div class="image-caption">image.png</div>
</div>
<p>再次验证是否可以访问</p>
<pre class="hljs cpp"><code class="cpp">curl -I http:<span class="hljs-comment">//127.0.0.1:8360/</span>
</code></pre>
<h3>使用 nginx 做反向代理</h3>
<pre class="hljs css"><code class="css"><span class="hljs-selector-tag">yum</span> <span class="hljs-selector-tag">install</span> <span class="hljs-selector-tag">nginx</span> <span class="hljs-selector-tag">-y</span>
<span class="hljs-selector-tag">systemctl</span> <span class="hljs-selector-tag">start</span> <span class="hljs-selector-tag">nginx</span><span class="hljs-selector-class">.service</span>
<span class="hljs-selector-tag">systemctl</span> <span class="hljs-selector-tag">enable</span> <span class="hljs-selector-tag">nginx</span><span class="hljs-selector-class">.service</span>
</code></pre>
<p>测试本地是否可以正常访问</p>
<pre class="hljs undefined"><code>curl -I localhost 
</code></pre>
<p>修改nginx配置</p>
<pre class="hljs undefined"><code>cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
vim /etc/nginx/nginx.conf
</code></pre>
<p>内容如下（只需更改 server 里面的内容）</p>
<pre class="hljs bash"><code class="bash">user nginx;
worker_processes auto;
error_log /var/<span class="hljs-built_in">log</span>/nginx/error.log;
pid /run/nginx.pid;

<span class="hljs-comment"># Load dynamic modules. See /usr/share/nginx/README.dynamic.</span>
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  <span class="hljs-string">'$remote_addr - $remote_user [$time_local] "$request" '</span>
                      <span class="hljs-string">'$status $body_bytes_sent "$http_referer" '</span>
                      <span class="hljs-string">'"$http_user_agent" "$http_x_forwarded_for"'</span>;

    access_log  /var/<span class="hljs-built_in">log</span>/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    <span class="hljs-comment"># Load modular configuration files from the /etc/nginx/conf.d directory.</span>
    <span class="hljs-comment"># See http://nginx.org/en/docs/ngx_core_module.html#include</span>
    <span class="hljs-comment"># for more information.</span>
    include /etc/nginx/conf.d/*.conf;

    server {
        listen 80;
        server_name nideshop.com www.nideshop.com; <span class="hljs-comment"># 改成你自己的域名</span>
        root /var/www/nideshop/www;
        <span class="hljs-built_in">set</span> <span class="hljs-variable">$node_port</span> 8360;

        index index.js index.html index.htm;
        <span class="hljs-keyword">if</span> ( -f <span class="hljs-variable">$request_filename</span>/index.html ){
            rewrite (.*) <span class="hljs-variable">$1</span>/index.html <span class="hljs-built_in">break</span>;
        }
        <span class="hljs-keyword">if</span> ( !-f <span class="hljs-variable">$request_filename</span> ){
            rewrite (.*) /index.js;
        }
        location = /index.js {
            proxy_http_version 1.1;
            proxy_set_header X-Real-IP <span class="hljs-variable">$remote_addr</span>;
            proxy_set_header X-Forwarded-For <span class="hljs-variable">$proxy_add_x_forwarded_for</span>;
            proxy_set_header Host <span class="hljs-variable">$http_host</span>;
            proxy_set_header X-NginX-Proxy <span class="hljs-literal">true</span>;
            proxy_set_header Upgrade <span class="hljs-variable">$http_upgrade</span>;
            proxy_set_header Connection <span class="hljs-string">"upgrade"</span>;
            proxy_pass http://127.0.0.1:<span class="hljs-variable">$node_port</span><span class="hljs-variable">$request_uri</span>;
            proxy_redirect off;
        }

        location ~ /static/ {
            etag         on;
            expires      max;
        }
    }
}
</code></pre>
<ul>
<li>重新启动nginx并验证nginx是否还可以正常访问</li>
</ul>
<pre class="hljs cpp"><code class="cpp">nginx -t 
systemctl restart nginx.service
curl  http:<span class="hljs-comment">//127.0.0.1/</span>
</code></pre>
<p>如果返回的是下图的json数据则表示nginx反向代理配置成功</p>
<div class="image-package">
<div class="image-container" style="max-width: 626px; max-height: 237px; background-color: transparent;">
<div class="image-container-fill" style="padding-bottom: 37.86%;"></div>
<div class="image-view" data-width="626" data-height="237"><img data-original-src="//upload-images.jianshu.io/upload_images/3985656-ff191d58e075c41c.png" data-original-width="626" data-original-height="237" data-original-format="" data-original-filesize="49815" style="cursor: zoom-in;" class="" src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/3985656-ff191d58e075c41c.png"></div>
</div>
<div class="image-caption">nginx转发成功</div>
</div>
<blockquote>
<p>注：阿里云默认外网不能访问80/443端口，请更改实例的安全组配置，配置教程：<a href="https://link.jianshu.com/?t=https%3A%2F%2Fhelp.aliyun.com%2Fdocument_detail%2F25475.html%3Fspm%3D5176.doc25475.3.3.ZAx4Uo" target="_blank" rel="nofollow">https://help.aliyun.com/document_detail/25475.html?spm=5176.doc25475.3.3.ZAx4Uo</a></p>
</blockquote>
<h3>配置https访问</h3>
<ul>
<li>安装certbot</li>
</ul>
<pre class="hljs undefined"><code>yum install epel-release -y
yum install certbot-nginx -y
certbot --nginx
</code></pre>
<p>如果 certbot -nginx 这步出错，则执行</p>
<pre class="hljs bash"><code class="bash">pip install --upgrade --force-reinstall <span class="hljs-string">'requests==2.6.0'</span> urllib3
</code></pre>
<p>重新执行 certbot --nginx</p>
<ul>
<li>配置自动更新证书</li>
</ul>
<pre class="hljs undefined"><code>certbot renew --dry-run
</code></pre>
<blockquote>
<p>详情文档请查看：<a href="https://link.jianshu.com/?t=https%3A%2F%2Fcertbot.eff.org%2F%23ubuntuxenial-nginx" target="_blank" rel="nofollow">https://certbot.eff.org/#ubuntuxenial-nginx</a></p>
</blockquote>
<ul>
<li>
<p>测试浏览器使用https形式访问是否成功</p>
<br>
<div class="image-package">
<div class="image-container" style="max-width: 441px; max-height: 216px; background-color: transparent;">
<div class="image-container-fill" style="padding-bottom: 48.980000000000004%;"></div>
<div class="image-view" data-width="441" data-height="216"><img data-original-src="//upload-images.jianshu.io/upload_images/3985656-9b0cfb1db7c99c3e.png" data-original-width="441" data-original-height="216" data-original-format="" data-original-filesize="20675" style="cursor: zoom-in;" class="" src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/3985656-9b0cfb1db7c99c3e.png"></div>
</div>
<div class="image-caption">配置https访问成功</div>
</div>
</li>
</ul>
<h3>修改NideShop微信小程序客户端的配置</h3>
<p>微信小程序商城客户端GitHub: <a href="https://link.jianshu.com/?t=https%3A%2F%2Fgithub.com%2Ftumobi%2Fnideshop-mini-program" target="_blank" rel="nofollow">https://github.com/tumobi/nideshop-mini-program</a><br>
打开文件config/api.js，修改NewApiRootUrl为自己的域名</p>
<pre class="hljs javascript"><code class="javascript"><span class="hljs-keyword">var</span> NewApiRootUrl = <span class="hljs-string">'https://www.nideshop.com/api/'</span>;
</code></pre>
<blockquote>
<p>注意https和后面的api/不能少</p>
</blockquote>
<p>到此部署成功。如有问题请加QQ群：497145766</p>

          </div>
        </div>
    </div>

    <!-- 如果是付费文章，未购买，则显示购买按钮 -->

    <!-- 连载目录项 -->

    <!-- 如果是付费文章 -->
      <!-- 如果是付费连载，已购买，且作者允许赞赏，则显示付费信息和赞赏 -->
        <div id="free-reward-panel" class="support-author"><p>小礼物走一走，来简书关注我</p> <div class="btn btn-pay">赞赏支持</div> <div class="supporter"><ul class="support-list"></ul> <!----></div> <!----> <!----></div>

      <div class="show-foot">
        <a class="notebook" href="https://www.jianshu.com/nb/8258832">
          <i class="iconfont ic-search-notebook"></i>
          <span>微信小程序商城</span>
</a>        <div class="copyright" data-toggle="tooltip" data-html="true" data-original-title="转载请联系作者获得授权，并标注“简书作者”。">
          © 著作权归作者所有
        </div>
        <div class="modal-wrap" data-report-note="">
          <a id="report-modal">举报文章</a>
        </div>
      </div>

      <!-- 文章底部作者信息 -->
        <div class="follow-detail">
          <div class="info">
            <a class="avatar" href="https://www.jianshu.com/u/575d7ece6e59">
              <img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/13-394c31a9cb492fcb39c27422ca7d2815.jpg" alt="96">
</a>            <a class="btn btn-success follow"><i class="iconfont ic-follow"></i><span>关注</span></a>
            <a class="title" href="https://www.jianshu.com/u/575d7ece6e59">tumobi</a>
            
              <i class="iconfont ic-man"></i>
          <p>写了 4852 字，被 123 人关注，获得了 132 个喜欢</p></div>
            <div class="signature">专注Laravel、Android、Node.js和微信小程序B2C开源商城开发
技术方向：Android、Vue.js、Node.js、Laravel、Ubuntu</div>
        </div>

    <div class="meta-bottom">
      <div data-v-6ddd02c6="" class="like"><div data-v-6ddd02c6="" class="btn like-group"><div data-v-6ddd02c6="" class="btn-like"><a data-v-6ddd02c6="">喜欢</a></div> <div data-v-6ddd02c6="" class="modal-wrap"><a data-v-6ddd02c6="">17</a></div></div> <!----></div>
      <div class="share-group">
        <a class="share-circle" data-action="weixin-share" data-toggle="tooltip" data-original-title="分享到微信">
          <i class="iconfont ic-wechat"></i>
        </a>
        <a class="share-circle" data-action="weibo-share" data-toggle="tooltip" href="javascript:void((function(s,d,e,r,l,p,t,z,c){var%20f=&#39;http://v.t.sina.com.cn/share/share.php?appkey=1881139527&#39;,u=z||d.location,p=[&#39;&amp;url=&#39;,e(u),&#39;&amp;title=&#39;,e(t||d.title),&#39;&amp;source=&#39;,e(r),&#39;&amp;sourceUrl=&#39;,e(l),&#39;&amp;content=&#39;,c||&#39;gb2312&#39;,&#39;&amp;pic=&#39;,e(p||&#39;&#39;)].join(&#39;&#39;);function%20a(){if(!window.open([f,p].join(&#39;&#39;),&#39;mb&#39;,[&#39;toolbar=0,status=0,resizable=1,width=440,height=430,left=&#39;,(s.width-440)/2,&#39;,top=&#39;,(s.height-430)/2].join(&#39;&#39;)))u.href=[f,p].join(&#39;&#39;);};if(/Firefox/.test(navigator.userAgent))setTimeout(a,0);else%20a();})(screen,document,encodeURIComponent,&#39;&#39;,&#39;&#39;,&#39;http://cwb.assets.jianshu.io/notes/images/18227670/weibo/image_54e108c2d60d.jpg&#39;, &#39;推荐 tumobi 的文章《CentOS 7.3 下部署基于 Node.js的微信小程序商城》（ 分享自 @简书 ）&#39;,&#39;https://www.jianshu.com/p/5d5497697b0a?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=reader_share&amp;utm_source=weibo&#39;,&#39;页面编码gb2312|utf-8默认gb2312&#39;));" data-original-title="分享到微博">
          <i class="iconfont ic-weibo"></i>
        </a>
          <a class="share-circle" data-toggle="tooltip" href="http://cwb.assets.jianshu.io/notes/images/18227670/weibo/image_54e108c2d60d.jpg" target="_blank" data-original-title="下载长微博图片">
            <i class="iconfont ic-picture"></i>
          </a>
        <a class="share-circle more-share" tabindex="0" data-toggle="popover" data-placement="top" data-html="true" data-trigger="focus" href="javascript:void(0);" data-content="
          &lt;ul class=&quot;share-list&quot;&gt;
            &lt;li&gt;&lt;a href=&quot;javascript:void(function(){var d=document,e=encodeURIComponent,r=&#39;http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=&#39;+e(&#39;https://www.jianshu.com/p/5d5497697b0a?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=reader_share&amp;utm_source=qzone&#39;)+&#39;&amp;title=&#39;+e(&#39;推荐 tumobi 的文章《CentOS 7.3 下部署基于 Node.js的微信小程序商城》&#39;),x=function(){if(!window.open(r,&#39;qzone&#39;,&#39;toolbar=0,resizable=1,scrollbars=yes,status=1,width=600,height=600&#39;))location.href=r};if(/Firefox/.test(navigator.userAgent)){setTimeout(x,0)}else{x()}})();&quot;&gt;&lt;i class=&quot;social-icon-sprite social-icon-zone&quot;&gt;&lt;/i&gt;&lt;span&gt;分享到QQ空间&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href=&quot;javascript:void(function(){var d=document,e=encodeURIComponent,r=&#39;https://twitter.com/share?url=&#39;+e(&#39;https://www.jianshu.com/p/5d5497697b0a?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=reader_share&amp;utm_source=twitter&#39;)+&#39;&amp;text=&#39;+e(&#39;推荐 tumobi 的文章《CentOS 7.3 下部署基于 Node.js的微信小程序商城》（ 分享自 @jianshucom ）&#39;)+&#39;&amp;related=&#39;+e(&#39;jianshucom&#39;),x=function(){if(!window.open(r,&#39;twitter&#39;,&#39;toolbar=0,resizable=1,scrollbars=yes,status=1,width=600,height=600&#39;))location.href=r};if(/Firefox/.test(navigator.userAgent)){setTimeout(x,0)}else{x()}})();&quot;&gt;&lt;i class=&quot;social-icon-sprite social-icon-twitter&quot;&gt;&lt;/i&gt;&lt;span&gt;分享到Twitter&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href=&quot;javascript:void(function(){var d=document,e=encodeURIComponent,r=&#39;https://www.facebook.com/dialog/share?app_id=483126645039390&amp;display=popup&amp;href=https://www.jianshu.com/p/5d5497697b0a?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=reader_share&amp;utm_source=facebook&#39;,x=function(){if(!window.open(r,&#39;facebook&#39;,&#39;toolbar=0,resizable=1,scrollbars=yes,status=1,width=450,height=330&#39;))location.href=r};if(/Firefox/.test(navigator.userAgent)){setTimeout(x,0)}else{x()}})();&quot;&gt;&lt;i class=&quot;social-icon-sprite social-icon-facebook&quot;&gt;&lt;/i&gt;&lt;span&gt;分享到Facebook&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href=&quot;javascript:void(function(){var d=document,e=encodeURIComponent,r=&#39;https://plus.google.com/share?url=&#39;+e(&#39;https://www.jianshu.com/p/5d5497697b0a?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=reader_share&amp;utm_source=google_plus&#39;),x=function(){if(!window.open(r,&#39;google_plus&#39;,&#39;toolbar=0,resizable=1,scrollbars=yes,status=1,width=450,height=330&#39;))location.href=r};if(/Firefox/.test(navigator.userAgent)){setTimeout(x,0)}else{x()}})();&quot;&gt;&lt;i class=&quot;social-icon-sprite social-icon-google&quot;&gt;&lt;/i&gt;&lt;span&gt;分享到Google+&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href=&quot;javascript:void(function(){var d=document,e=encodeURIComponent,s1=window.getSelection,s2=d.getSelection,s3=d.selection,s=s1?s1():s2?s2():s3?s3.createRange().text:&#39;&#39;,r=&#39;http://www.douban.com/recommend/?url=&#39;+e(&#39;https://www.jianshu.com/p/5d5497697b0a?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=reader_share&amp;utm_source=douban&#39;)+&#39;&amp;title=&#39;+e(&#39;CentOS 7.3 下部署基于 Node.js的微信小程序商城&#39;)+&#39;&amp;sel=&#39;+e(s)+&#39;&amp;v=1&#39;,x=function(){if(!window.open(r,&#39;douban&#39;,&#39;toolbar=0,resizable=1,scrollbars=yes,status=1,width=450,height=330&#39;))location.href=r+&#39;&amp;r=1&#39;};if(/Firefox/.test(navigator.userAgent)){setTimeout(x,0)}else{x()}})()&quot;&gt;&lt;i class=&quot;social-icon-sprite social-icon-douban&quot;&gt;&lt;/i&gt;&lt;span&gt;分享到豆瓣&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
          &lt;/ul&gt;
        " data-original-title="" title="">更多分享</a>
      </div>
    </div>
      <a id="web-note-ad-1" target="_blank" href="https://www.jianshu.com/apps/download?utm_source=nbc"><img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/web-note-ad-1-10f08e404d3887d2d45a4bc8f1831403.png" alt="Web note ad 1"></a>
    <div><div id="comment-list" class="comment-list"><div><form class="new-comment"><a class="avatar"><img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/avatar_default-78d4d1f68984cd6d4379508dd94b4210.png"></a> <div class="sign-container"><a href="https://www.jianshu.com/sign_in?utm_source=desktop&amp;utm_medium=not-signed-in-comment-form" class="btn btn-sign">登录</a> <span>后发表评论</span></div></form> <!----></div> <div id="normal-comment-list" class="normal-comment-list"><div><div><div class="top-title"><span>5条评论</span> <a class="author-only">只看作者</a> <a class="close-btn" style="display: none;">关闭评论</a> <div class="pull-right"><a class="active">按喜欢排序</a><a class="">按时间正序</a><a class="">按时间倒序</a></div></div></div> <!----> <!----> <div class="comments-placeholder" style="display: none;"><div class="author"><div class="avatar"></div> <div class="info"><div class="name"></div> <div class="meta"></div></div></div> <div class="text"></div> <div class="text animation-delay"></div> <div class="tool-group"><i class="iconfont ic-zan-active"></i><div class="zan"></div> <i class="iconfont ic-list-comments"></i><div class="zan"></div></div></div> <div id="comment-19373583" class="comment"><div><div class="author"><div data-v-f3bf5228="" class="v-tooltip-container" style="z-index: 0;"><div class="v-tooltip-content"><a href="https://www.jianshu.com/u/289a85fa547c" target="_blank" class="avatar"><img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/9a8a0413-f4bf-4aad-b8ef-dd1164f34355"></a>  </div> <!----></div> <div class="info"><a href="https://www.jianshu.com/u/289a85fa547c" target="_blank" class="name">一颗懒能</a> <!----> <!----> <div class="meta"><span>2楼 · 2018.01.08 20:44</span></div></div></div> <div class="comment-wrap"><p>你好 这个可以商用吗</p> <div class="tool-group"><a data-v-cdecbe24="" id="like-button-19373583" class="like-button"><span data-v-cdecbe24="">赞</span></a> <a class=""><i class="iconfont ic-comment"></i> <span>回复</span></a> <!----> <!----></div></div></div> <div class="sub-comment-list"><div id="comment-19381410" class="sub-comment"><p><div data-v-f3bf5228="" class="v-tooltip-container" style="z-index: 0;"><div class="v-tooltip-content"><a href="https://www.jianshu.com/u/575d7ece6e59" target="_blank">tumobi</a>：
            </div> <!----></div> <span><a href="https://www.jianshu.com/users/289a85fa547c" class="maleskine-author" target="_blank" data-user-slug="289a85fa547c">@一颗懒能</a> 还达不到商用的级别</span></p> <div class="sub-tool-group"><span>2018.01.09 00:29</span> <a class=""><i class="iconfont ic-comment"></i> <span>回复</span></a> <!----> <!----></div></div> <div class="sub-comment more-comment"><a class="add-comment-btn"><i class="iconfont ic-subcomment"></i> <span>添加新评论</span></a> <!----> <!----> <!----></div> <!----></div></div><div id="comment-19373589" class="comment"><div><div class="author"><div data-v-f3bf5228="" class="v-tooltip-container" style="z-index: 0;"><div class="v-tooltip-content"><a href="https://www.jianshu.com/u/289a85fa547c" target="_blank" class="avatar"><img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/9a8a0413-f4bf-4aad-b8ef-dd1164f34355"></a>  </div> <!----></div> <div class="info"><a href="https://www.jianshu.com/u/289a85fa547c" target="_blank" class="name">一颗懒能</a> <!----> <!----> <div class="meta"><span>3楼 · 2018.01.08 20:45</span></div></div></div> <div class="comment-wrap"><p>有没有bug</p> <div class="tool-group"><a data-v-cdecbe24="" id="like-button-19373589" class="like-button"><span data-v-cdecbe24="">赞</span></a> <a class=""><i class="iconfont ic-comment"></i> <span>回复</span></a> <!----> <!----></div></div></div> <div class="sub-comment-list hide"><!----> <!----></div></div><div id="comment-21652124" class="comment"><div><div class="author"><div data-v-f3bf5228="" class="v-tooltip-container" style="z-index: 0;"><div class="v-tooltip-content"><a href="https://www.jianshu.com/u/c7a2c9899607" target="_blank" class="avatar"><img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/b890c710-ca61-4898-b2e6-1cc4a89dbd8f.jpg"></a>  </div> <!----></div> <div class="info"><a href="https://www.jianshu.com/u/c7a2c9899607" target="_blank" class="name">北极熊_2bcb</a> <!----> <!----> <div class="meta"><span>4楼 · 2018.03.15 16:33</span></div></div></div> <div class="comment-wrap"><p>厉害了~ 感谢作者~~</p> <div class="tool-group"><a data-v-cdecbe24="" id="like-button-21652124" class="like-button"><span data-v-cdecbe24="">赞</span></a> <a class=""><i class="iconfont ic-comment"></i> <span>回复</span></a> <!----> <!----></div></div></div> <div class="sub-comment-list hide"><!----> <!----></div></div><div id="comment-22387198" class="comment"><div><div class="author"><div data-v-f3bf5228="" class="v-tooltip-container" style="z-index: 0;"><div class="v-tooltip-content"><a href="https://www.jianshu.com/u/ce81ca67ab60" target="_blank" class="avatar"><img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/aad142c8-007c-4e20-a3a6-26d8f2c1ce84"></a>  </div> <!----></div> <div class="info"><a href="https://www.jianshu.com/u/ce81ca67ab60" target="_blank" class="name">Andin2753</a> <!----> <!----> <div class="meta"><span>5楼 · 2018.04.03 10:30</span></div></div></div> <div class="comment-wrap"><p>还不更新呀</p> <div class="tool-group"><a data-v-cdecbe24="" id="like-button-22387198" class="like-button"><span data-v-cdecbe24="">赞</span></a> <a class=""><i class="iconfont ic-comment"></i> <span>回复</span></a> <!----> <!----></div></div></div> <div class="sub-comment-list hide"><!----> <!----></div></div></div></div> <!----> <div><!----></div></div></div>
  </div>

  <div class="side-tool"><ul><li data-placement="left" data-toggle="tooltip" data-container="body" data-original-title="回到顶部" style="display: none;"><a class="function-button"><i class="iconfont ic-backtop"></i></a></li> <!----> <!----> <li data-placement="left" data-toggle="tooltip" data-container="body" data-original-title="分享文章"><a tabindex="0" role="button" data-toggle="popover" data-placement="left" data-html="true" data-trigger="focus" href="javascript:void(0);" data-content="&lt;ul class=&#39;share-list&#39;&gt;
                &lt;li&gt;&lt;a class=&quot;weixin-share&quot;&gt;&lt;i class=&quot;social-icon-sprite social-icon-weixin&quot;&gt;&lt;/i&gt;&lt;span&gt;分享到微信&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;javascript:void((function(s,d,e,r,l,p,t,z,c){var%20f=&#39;http://v.t.sina.com.cn/share/share.php?appkey=1881139527&#39;,u=z||d.location,p=[&#39;&amp;url=&#39;,e(u),&#39;&amp;title=&#39;,e(t||d.title),&#39;&amp;source=&#39;,e(r),&#39;&amp;sourceUrl=&#39;,e(l),&#39;&amp;content=&#39;,c||&#39;gb2312&#39;,&#39;&amp;pic=&#39;,e(p||&#39;&#39;)].join(&#39;&#39;);function%20a(){if(!window.open([f,p].join(&#39;&#39;),&#39;mb&#39;,[&#39;toolbar=0,status=0,resizable=1,width=440,height=430,left=&#39;,(s.width-440)/2,&#39;,top=&#39;,(s.height-430)/2].join(&#39;&#39;)))u.href=[f,p].join(&#39;&#39;);};if(/Firefox/.test(navigator.userAgent))setTimeout(a,0);else%20a();})(screen,document,encodeURIComponent,&#39;&#39;,&#39;&#39;,&#39;http://cwb.assets.jianshu.io/notes/images/18227670/weibo/image_54e108c2d60d.jpg&#39;, &#39;推荐 tumobi 的文章《CentOS 7.3 下部署基于 Node.js的微信小程序商城》（ 分享自 @简书 ）&#39;,&#39;https://www.jianshu.com/p/5d5497697b0a?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=reader_share&amp;utm_source=weibo&#39;,&#39;页面编码gb2312|utf-8默认gb2312&#39;));&quot;&gt;&lt;i class=&#39;social-icon-sprite social-icon-weibo&#39;&gt;&lt;/i&gt;&lt;span&gt;分享到微博&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;http://cwb.assets.jianshu.io/notes/images/18227670/weibo/image_54e108c2d60d.jpg&quot; target=&quot;_blank&quot;&gt;&lt;i class=&quot;social-icon-sprite social-icon-picture&quot;&gt;&lt;/i&gt;&lt;span&gt;下载长微博图片&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;javascript:void(function(){var d=document,e=encodeURIComponent,r=&#39;http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=&#39;+e(&#39;https://www.jianshu.com/p/5d5497697b0a?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=reader_share&amp;utm_source=qzone&#39;)+&#39;&amp;title=&#39;+e(&#39;推荐 tumobi 的文章《CentOS 7.3 下部署基于 Node.js的微信小程序商城》&#39;),x=function(){if(!window.open(r,&#39;qzone&#39;,&#39;toolbar=0,resizable=1,scrollbars=yes,status=1,width=600,height=600&#39;))location.href=r};if(/Firefox/.test(navigator.userAgent)){setTimeout(x,0)}else{x()}})();&quot;&gt;&lt;i class=&#39;social-icon-sprite social-icon-zone&#39;&gt;&lt;/i&gt;&lt;span&gt;分享到QQ空间&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;javascript:void(function(){var d=document,e=encodeURIComponent,r=&#39;https://twitter.com/share?url=&#39;+e(&#39;https://www.jianshu.com/p/5d5497697b0a?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=reader_share&amp;utm_source=twitter&#39;)+&#39;&amp;text=&#39;+e(&#39;推荐 tumobi 的文章《CentOS 7.3 下部署基于 Node.js的微信小程序商城》（ 分享自 @jianshucom ）&#39;)+&#39;&amp;related=&#39;+e(&#39;jianshucom&#39;),x=function(){if(!window.open(r,&#39;twitter&#39;,&#39;toolbar=0,resizable=1,scrollbars=yes,status=1,width=600,height=600&#39;))location.href=r};if(/Firefox/.test(navigator.userAgent)){setTimeout(x,0)}else{x()}})();&quot;&gt;&lt;i class=&#39;social-icon-sprite social-icon-twitter&#39;&gt;&lt;/i&gt;&lt;span&gt;分享到Twitter&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;javascript:void(function(){var d=document,e=encodeURIComponent,r=&#39;https://www.facebook.com/dialog/share?app_id=483126645039390&amp;display=popup&amp;href=https://www.jianshu.com/p/5d5497697b0a?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=reader_share&amp;utm_source=facebook&#39;,x=function(){if(!window.open(r,&#39;facebook&#39;,&#39;toolbar=0,resizable=1,scrollbars=yes,status=1,width=450,height=330&#39;))location.href=r};if(/Firefox/.test(navigator.userAgent)){setTimeout(x,0)}else{x()}})();&quot;&gt;&lt;i class=&#39;social-icon-sprite social-icon-facebook&#39;&gt;&lt;/i&gt;&lt;span&gt;分享到Facebook&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;javascript:void(function(){var d=document,e=encodeURIComponent,r=&#39;https://plus.google.com/share?url=&#39;+e(&#39;https://www.jianshu.com/p/5d5497697b0a?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=reader_share&amp;utm_source=google_plus&#39;),x=function(){if(!window.open(r,&#39;google_plus&#39;,&#39;toolbar=0,resizable=1,scrollbars=yes,status=1,width=450,height=330&#39;))location.href=r};if(/Firefox/.test(navigator.userAgent)){setTimeout(x,0)}else{x()}})();&quot;&gt;&lt;i class=&#39;social-icon-sprite social-icon-google&#39;&gt;&lt;/i&gt;&lt;span&gt;分享到Google+&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href=&quot;javascript:void(function(){var d=document,e=encodeURIComponent,s1=window.getSelection,s2=d.getSelection,s3=d.selection,s=s1?s1():s2?s2():s3?s3.createRange().text:&#39;&#39;,r=&#39;http://www.douban.com/recommend/?url=&#39;+e(&#39;https://www.jianshu.com/p/5d5497697b0a?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=reader_share&amp;utm_source=douban&#39;)+&#39;&amp;title=&#39;+e(&#39;CentOS 7.3 下部署基于 Node.js的微信小程序商城&#39;)+&#39;&amp;sel=&#39;+e(s)+&#39;&amp;v=1&#39;,x=function(){if(!window.open(r,&#39;douban&#39;,&#39;toolbar=0,resizable=1,scrollbars=yes,status=1,width=450,height=330&#39;))location.href=r+&#39;&amp;r=1&#39;};if(/Firefox/.test(navigator.userAgent)){setTimeout(x,0)}else{x()}})()&quot;&gt;&lt;i class=&#39;social-icon-sprite social-icon-douban&#39;&gt;&lt;/i&gt;&lt;span&gt;分享到豆瓣&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
              &lt;/ul&gt;" data-original-title="" title="" class="function-button"><i class="iconfont ic-share"></i></a> <!----></li> <!----></ul></div>
</div>
<div class="note-bottom">
  <div><div class="main"><div class="title">被以下专题收入，发现更多相似内容</div> <!----> <div class="include-collection"><!----> <a href="https://www.jianshu.com/c/d836cb84afac?utm_source=desktop&amp;utm_medium=notes-included-collection" target="_blank" class="item"><img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/Wallpapers_de_Linux_Ubuntronics_01.png"><div class="name">我用 Linux</div></a><a href="https://www.jianshu.com/c/dfdc2bbd1315?utm_source=desktop&amp;utm_medium=notes-included-collection" target="_blank" class="item"><img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/android.graphics.Bitmap_2ef3570.jpeg"><div class="name">微信小程序开发</div></a><a href="https://www.jianshu.com/c/700623e45e0f?utm_source=desktop&amp;utm_medium=notes-included-collection" target="_blank" class="item"><img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/u_1516066247_425823177_fm_85_s_3E012ECAA86600179D49A30B03003053.jpg"><div class="name">微信小程序商城</div></a><a href="https://www.jianshu.com/c/5dbae236293d?utm_source=desktop&amp;utm_medium=notes-included-collection" target="_blank" class="item"><img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/logo.png"><div class="name">Node.js...</div></a><a href="https://www.jianshu.com/c/5c9044e5243e?utm_source=desktop&amp;utm_medium=notes-included-collection" target="_blank" class="item"><img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/Bubbly-2880.png"><div class="name">Node</div></a> <!----></div></div> <!----> <!----></div>
  <div><div class="recommend-note"><div class="meta"><div class="title">
        推荐阅读
        <a target="_blank" href="https://www.jianshu.com/" class="more">
           更多精彩内容<i class="iconfont ic-link"></i></a></div></div> <div class="list"><div class="note"><!----> <a target="_blank" href="https://www.jianshu.com/p/dea6650c0514?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=pc_all_hots&amp;utm_source=recommendation" class="title">学习 pomelo 和 Cocos Creator 过程中收集的资料</a> <p class="description">pomelo-cocos-creator-awesome 学习 pomelo 和 Cocos Creator 过程中收集的资料，棋牌开发交流 QQ 群：390562874 GitHub: https://github.com/tumobi/pomelo-cocos-creator-awesome 教程 nodejs+pomelo+mysql实战经验分享 简书专题：pomelo 游戏开发 Pomelo框架参考 pomelo - 寒风 - CSDN博客 专栏：pomelo入门 - CSDN博客 分类: Pomelo | Vitah's Blog remote的写法支持es6的class么 p...</p> <a target="_blank" href="https://www.jianshu.com/u/575d7ece6e59?utm_campaign=maleskine&amp;utm_content=user&amp;utm_medium=pc_all_hots&amp;utm_source=recommendation" class="author"><div class="avatar" style="background-image: url(&quot;//cdn2.jianshu.io/assets/default_avatar/13-394c31a9cb492fcb39c27422ca7d2815.jpg&quot;);"></div> <span class="name">tumobi</span></a></div><div class="note"><!----> <a target="_blank" href="https://www.jianshu.com/p/c9fc8e2743cb?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=pc_all_hots&amp;utm_source=recommendation" class="title">Sketch 相关资料收集</a> <p class="description">社区 官网 插件 SketchI18N - 汉化插件 Content Generator Sketch Plugin  - 用于生成人名、头像、邮件、占位文字、地理位置、随机数字等等 Sketch Measure - 标注神器，标注图形尺寸、距离、颜色和文本属性 视频教程 30W年薪Sketch UI案例＋插画表情包 Sketch入门到精通（logo设计+金融App项目案例）</p> <a target="_blank" href="https://www.jianshu.com/u/575d7ece6e59?utm_campaign=maleskine&amp;utm_content=user&amp;utm_medium=pc_all_hots&amp;utm_source=recommendation" class="author"><div class="avatar" style="background-image: url(&quot;//cdn2.jianshu.io/assets/default_avatar/13-394c31a9cb492fcb39c27422ca7d2815.jpg&quot;);"></div> <span class="name">tumobi</span></a></div><div class="note have-img"><a target="_blank" href="https://www.jianshu.com/p/fe77e84612e0?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=pc_all_hots&amp;utm_source=recommendation" class="cover" style="background-image: url(&quot;//upload-images.jianshu.io/upload_images/9040811-10089b3d322b9c4a.jpeg?imageMogr2/auto-orient/strip|imageView2/1/w/300/h/240&quot;);"></a> <a target="_blank" href="https://www.jianshu.com/p/fe77e84612e0?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=pc_all_hots&amp;utm_source=recommendation" class="title">女孩子值得拥有的9个好习惯</a> <p class="description">文|娴线 懂得了那么多道理，却依然过不好一生，因为改变我们生活的，不是道理而是习惯。 01 毕业那年，室友小谷是全寝室衣服鞋子包包最多的女生，整整塞了两袋子，买这些淘宝地摊货四年下来同样花了不少钱，最后却褪色的褪色，起球的起球，有味道的味道依旧没散干净。 而我们隔壁寝室的一个女生，生活条件和小谷差不多，四年下来她只买了六件品牌服饰两个包包，和两双昂贵的冷暖鞋，到了毕业依旧穿得有品有味。 小谷跟我们说:“毕业那一刻我才明白，四年时间我的品味一直在low里打转转，讲究数量和新鲜，却忽略了生活最重要的质感和精致。” 女孩子，宁可买贵很多的有质量保证、穿着得体、面料舒适的品牌服饰，哪怕只够买一件...</p> <a target="_blank" href="https://www.jianshu.com/u/f2f3a52c9d44?utm_campaign=maleskine&amp;utm_content=user&amp;utm_medium=pc_all_hots&amp;utm_source=recommendation" class="author"><div class="avatar" style="background-image: url(&quot;//upload.jianshu.io/users/upload_avatars/9040811/e1e18b87-e501-49e9-98ea-62a6f73b5943.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/24/h/24&quot;);"></div> <span class="name">娴线</span></a></div><div class="note have-img"><a target="_blank" href="https://www.jianshu.com/p/237f1b2f69e9?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=pc_all_hots&amp;utm_source=recommendation" class="cover" style="background-image: url(&quot;//upload-images.jianshu.io/upload_images/5403259-4287f38367000e06.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/300/h/240&quot;);"></a> <a target="_blank" href="https://www.jianshu.com/p/237f1b2f69e9?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=pc_all_hots&amp;utm_source=recommendation" class="title">月入数十万——谈谈全职写作后我赚到的</a> <p class="description">标题很像鸡汤。 接下来，行文也很像。鸡汤文的套路是三个故事加一个道理。 今天也说三个故事，但可能连“鸡汤”都比不上。 因为寡淡、无趣、乏善可陈、缺乏营养，估计达不到鸡汤一半的熨慰暖心与油腻饱腹。 所以，若没有心理预期，便不必再往下拉，不看也罢。 言归正传。 第一个故事 这是旅行在路上专题苏羽主编的文。 简友们发到群里告诉我，同时也戏谑了半晌。 看完后，除了苦笑、摊手，我一时也没什么话说。一来是我慢，脑子还没跟上来；二来我猜想是苏羽主编爱开玩笑；三来，对于无稽的事件，我一向的态度是：大家笑笑就笑笑呗。 诚如我之后在群里写的：首先月薪这东西是隐私，我这样不善于交际不爱说话的人，从来不去提，外...</p> <a target="_blank" href="https://www.jianshu.com/u/203d799b2d7b?utm_campaign=maleskine&amp;utm_content=user&amp;utm_medium=pc_all_hots&amp;utm_source=recommendation" class="author"><div class="avatar" style="background-image: url(&quot;//upload.jianshu.io/users/upload_avatars/5403259/5dd4e919-9329-4e82-ba14-c123b2496bc5.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/24/h/24&quot;);"></div> <span class="name">水青衣</span></a></div><div class="note have-img"><a target="_blank" href="https://www.jianshu.com/p/29621e57077f?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=pc_all_hots&amp;utm_source=recommendation" class="cover" style="background-image: url(&quot;//upload-images.jianshu.io/upload_images/9132321-cbd0854a39420217.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/300/h/240&quot;);"></a> <a target="_blank" href="https://www.jianshu.com/p/29621e57077f?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=pc_all_hots&amp;utm_source=recommendation" class="title">“对不起，我们公司不需要女大学生”</a> <p class="description">文＃阿呗 前两天去教学办整理毕业生档案，偶然间翻到一条信息。 “大学生毕业就失业的概率中，女生普遍比男生高百分之三十。” 那不是我第一次体会到这个时代对女孩子的不公平，但却是最深刻的一次，不曾想竟还与未来挂钩。 回头我问学姐。 “女孩子就业是不是很难啊？为什么大学毕业就失业的概率，和男生相比差别那么大？” 学姐放下了手中正整理的一厚沓资料。 她说:“我不知道其他的专业怎么样，但对于理工科来说，确实如此，这种性别歧视，还不是一般的严重。” 听完心顿时凉了一截。 ＃1 毕业就失业的说法我不是第一次听，但大多数时候，我都觉得，都是自身的不努力，大学过的太过于堕落造成的，对于很多公司不招收女大学...</p> <a target="_blank" href="https://www.jianshu.com/u/bfb1aa483a03?utm_campaign=maleskine&amp;utm_content=user&amp;utm_medium=pc_all_hots&amp;utm_source=recommendation" class="author"><div class="avatar" style="background-image: url(&quot;//upload.jianshu.io/users/upload_avatars/9132321/4ed54fce-9d7d-4788-ab34-f6c955758597.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/24/h/24&quot;);"></div> <span class="name">阿哔有个帅阿呗</span></a></div></div></div></div>
  <!-- 相关文章 -->
  <div class="seo-recommended-notes">

        <div class="note ">
                    <a class="title" target="_blank" href="https://www.jianshu.com/p/38d13a7c1b78?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=seo_notes&amp;utm_source=recommendation">Ubuntu 16.04 下部署Node.js+MySQL微信小程序商城</a>
          <p class="description">本文档为微信小程序商城NideShop项目的安装部署教程，欢迎star NideShop商城api服务：https://github.com/tumobi/nideshop NideShop微信小程序商城： https://github.com/tumobi/nidesho...</p>
          <a class="author" target="_blank" href="https://www.jianshu.com/u/575d7ece6e59?utm_campaign=maleskine&amp;utm_content=user&amp;utm_medium=seo_notes&amp;utm_source=recommendation">
            <div class="avatar">
              <img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/13-394c31a9cb492fcb39c27422ca7d2815(1).jpg" alt="48">
            </div>
            <span class="name">tumobi</span>
</a>        </div>

        <div class="note have-img">
          <a class="cover" target="_blank" href="https://www.jianshu.com/p/46fd0faecac1?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=seo_notes&amp;utm_source=recommendation">
            <img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/7328262-54f7992145380c10.png" alt="240">
</a>          <a class="title" target="_blank" href="https://www.jianshu.com/p/46fd0faecac1?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=seo_notes&amp;utm_source=recommendation">Spring Cloud</a>
          <p class="description">Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具（例如配置管理，服务发现，断路器，智能路由，微代理，控制总线）。分布式系统的协调导致了样板模式, 使用Spring Cloud开发人员可以快速地支持实现这些模式的服务和应用程序。他们将在任何分布式...</p>
          <a class="author" target="_blank" href="https://www.jianshu.com/u/d90908cb0d85?utm_campaign=maleskine&amp;utm_content=user&amp;utm_medium=seo_notes&amp;utm_source=recommendation">
            <div class="avatar">
              <img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/2-9636b13945b9ccf345bc98d0d81074eb.jpg" alt="48">
            </div>
            <span class="name">卡卡罗2017</span>
</a>        </div>

        <div class="note have-img">
          <a class="cover" target="_blank" href="https://www.jianshu.com/p/78a0f5f424e1?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=seo_notes&amp;utm_source=recommendation">
            <img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/3985656-634a56e06b3b77f7.png" alt="240">
</a>          <a class="title" target="_blank" href="https://www.jianshu.com/p/78a0f5f424e1?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=seo_notes&amp;utm_source=recommendation">不用买域名、不用备案、不用配置https快速部署Node.js微信小程序商城</a>
          <p class="description">本文档为微信小程序商城NideShop项目的安装部署教程，欢迎star NideShop商城api服务：https://github.com/tumobi/nideshop NideShop微信小程序商城： https://github.com/tumobi/nidesho...</p>
          <a class="author" target="_blank" href="https://www.jianshu.com/u/575d7ece6e59?utm_campaign=maleskine&amp;utm_content=user&amp;utm_medium=seo_notes&amp;utm_source=recommendation">
            <div class="avatar">
              <img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/13-394c31a9cb492fcb39c27422ca7d2815(1).jpg" alt="48">
            </div>
            <span class="name">tumobi</span>
</a>        </div>

        <div class="note have-img">
          <a class="cover" target="_blank" href="https://www.jianshu.com/p/e1df480726be?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=seo_notes&amp;utm_source=recommendation">
            <img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/7298444-cf27e5a0060dac98.PNG" alt="240">
</a>          <a class="title" target="_blank" href="https://www.jianshu.com/p/e1df480726be?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=seo_notes&amp;utm_source=recommendation">【转】Android 开源项目分类汇总</a>
          <p class="description">来源：https://github.com/Trinea/android-open-project 更多：Android 开源库获取途径整理 目前包括： Android 开源项目第一篇——个性化控件(View)篇 包括ListView、ActionBar、Menu、View...</p>
          <a class="author" target="_blank" href="https://www.jianshu.com/u/9ceb5a99d2c7?utm_campaign=maleskine&amp;utm_content=user&amp;utm_medium=seo_notes&amp;utm_source=recommendation">
            <div class="avatar">
              <img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/ca469c70-20c8-40c1-aa18-602979f3da7f.jpg" alt="48">
            </div>
            <span class="name">旭川君</span>
</a>        </div>

        <div class="note have-img">
          <a class="cover" target="_blank" href="https://www.jianshu.com/p/f1e83b5eb64b?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=seo_notes&amp;utm_source=recommendation">
            <img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/7298444-cf27e5a0060dac98.PNG" alt="240">
</a>          <a class="title" target="_blank" href="https://www.jianshu.com/p/f1e83b5eb64b?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=seo_notes&amp;utm_source=recommendation">2017-05-30</a>
          <p class="description">【转】Android 开源项目分类汇总 旭川君已关注 2017.08.15 16:49*字数 29527阅读 1795评论 1喜欢 35 来源：https://github.com/Trinea/android-open-project 更多：Android 开源库获取途径...</p>
          <a class="author" target="_blank" href="https://www.jianshu.com/u/de9e507f17aa?utm_campaign=maleskine&amp;utm_content=user&amp;utm_medium=seo_notes&amp;utm_source=recommendation">
            <div class="avatar">
              <img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/1-04bbeead395d74921af6a4e8214b4f61.jpg" alt="48">
            </div>
            <span class="name">ulpqtdax</span>
</a>        </div>

        <div class="note ">
                    <a class="title" target="_blank" href="https://www.jianshu.com/p/2aa68c0bb9ab?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=seo_notes&amp;utm_source=recommendation">OC语言day01-03第一个OC程序</a>
          <p class="description">pragma mark 第一个OC程序 pragma mark 概念 pragma mark 代码</p>
          <a class="author" target="_blank" href="https://www.jianshu.com/u/281de5fe4e05?utm_campaign=maleskine&amp;utm_content=user&amp;utm_medium=seo_notes&amp;utm_source=recommendation">
            <div class="avatar">
              <img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/8a206a80504d.jpg" alt="48">
            </div>
            <span class="name">liyuhong165</span>
</a>        </div>

        <div class="note have-img">
          <a class="cover" target="_blank" href="https://www.jianshu.com/p/f0ca2a425073?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=seo_notes&amp;utm_source=recommendation">
            <img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/3523210-b002ce902d3e7ea7.png" alt="240">
</a>          <a class="title" target="_blank" href="https://www.jianshu.com/p/f0ca2a425073?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=seo_notes&amp;utm_source=recommendation">Android自定义View四（Canvas与ValueAnimator）</a>
          <p class="description">一、Canvas 1、创建画笔 创建画笔并初始化 2、绘制坐标轴 使用onsizeChanged方法，获取根据父布局等因素确认的View宽度 把原点移动到屏幕中心 绘制坐标原点 绘制坐标系的4个端点，一次绘制多个点 绘制坐标轴 绘制坐标箭头，绘制多条线 如果觉得不舒服，一定...</p>
          <a class="author" target="_blank" href="https://www.jianshu.com/u/1d7f96a141e2?utm_campaign=maleskine&amp;utm_content=user&amp;utm_medium=seo_notes&amp;utm_source=recommendation">
            <div class="avatar">
              <img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/a8f1120f28ef.png" alt="48">
            </div>
            <span class="name">赫丹</span>
</a>        </div>

        <div class="note ">
                    <a class="title" target="_blank" href="https://www.jianshu.com/p/d6504a67e12a?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=seo_notes&amp;utm_source=recommendation">Struts2干货笔记——第三天</a>
          <p class="description">目录 1. Struts2国际化 1.1 资源包的编写 1.2 国际化配置 1.3 在struts2中国际化操作可以在哪些位置使用? 1.4 在struts2中操作国际化? 2. 拦截器 2.1 怎样使用拦截器 2.2 常用拦截器 2.3 怎样解决只让action中某些方法...</p>
          <a class="author" target="_blank" href="https://www.jianshu.com/u/d3ac10906ec0?utm_campaign=maleskine&amp;utm_content=user&amp;utm_medium=seo_notes&amp;utm_source=recommendation">
            <div class="avatar">
              <img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/621f009a7ff3" alt="48">
            </div>
            <span class="name">深海鱼Q</span>
</a>        </div>

        <div class="note ">
                    <a class="title" target="_blank" href="https://www.jianshu.com/p/775e7cae37ff?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=seo_notes&amp;utm_source=recommendation">你一直在观望，从不行动</a>
          <p class="description">  这个标题写的就是我，从今年年初开始，我关注了大量的鸡汤和干货的公众号，每天都等着盼着看各路大神更新，点赞，分享，感觉自己这一天又没白活，看看人家大神写的多么透彻，太对了，就得这么做，然后我依旧上班、抱怨、下班、回家、到点睡觉，明天又是一个循环。该看的书一点都没看，还智障...</p>
          <a class="author" target="_blank" href="https://www.jianshu.com/u/84af5ad611a0?utm_campaign=maleskine&amp;utm_content=user&amp;utm_medium=seo_notes&amp;utm_source=recommendation">
            <div class="avatar">
              <img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/d9a2128e9f37" alt="48">
            </div>
            <span class="name">碗妹</span>
</a>        </div>

        <div class="note ">
                    <a class="title" target="_blank" href="https://www.jianshu.com/p/7bfd1a3eda9e?utm_campaign=maleskine&amp;utm_content=note&amp;utm_medium=seo_notes&amp;utm_source=recommendation">怎样填报志愿才能避免院校退档</a>
          <p class="description">考生不能被院校录取的原因简单的说只有两种情况，一是考生的分数未达到院校的调档线，没有机会参与录取。这需要通过准确把握自己的实力和定位以及科学判断院校今年录取分数来解决。二是考生的分数虽然达到了院校调档线，但因不符合院校录取的相关要求被退档。因此，充分了解院校退档的种类和具体...</p>
          <a class="author" target="_blank" href="https://www.jianshu.com/u/a327fba6d5b1?utm_campaign=maleskine&amp;utm_content=user&amp;utm_medium=seo_notes&amp;utm_source=recommendation">
            <div class="avatar">
              <img src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/9-cceda3cf5072bcdd77e8ca4f21c40998.jpg" alt="48">
            </div>
            <span class="name">丁爸__海爸</span>
</a>        </div>
  </div>
</div>

    <script type="application/json" data-name="page-data">{"user_signed_in":false,"locale":"zh-CN","os":"windows","read_mode":"day","read_font":"font2","note_show":{"is_martin_user":false,"is_author":false,"is_following_author":false,"is_liked_note":false,"follow_state":0,"uuid":"7d164c99-f4a9-4597-bd54-ff3b2623abcc"},"note":{"id":18227670,"slug":"5d5497697b0a","user_id":3985656,"notebook_id":8258832,"commentable":true,"likes_count":17,"views_count":3842,"public_wordage":808,"comments_count":5,"total_rewards_count":0,"is_author":false,"paid_type":"free","paid_content_accessible":false,"author":{"nickname":"tumobi","total_wordage":4852,"followers_count":123,"total_likes_count":132}}}</script>
    
    <script src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/babel-polyfill-b99072e62e23ea801bb9.js.下载" crossorigin="anonymous"></script>
    <script src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/web-base-e509aa3e52f02e1eb32d.js.下载" crossorigin="anonymous"></script>
<script src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/web-3e5c558c184cbb9a2fdf.js.下载" crossorigin="anonymous"></script>
    
    <script src="./CentOS 7.3 下部署基于 Node.js的微信小程序商城 - 简书_files/entry-d25a5518a0d2551d70c1.js.下载" crossorigin="anonymous"></script>
    <script>
  (function(){
      var bp = document.createElement('script');
      var curProtocol = window.location.protocol.split(':')[0];
      if (curProtocol === 'https') {
          bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
      }
      else {
          bp.src = 'http://push.zhanzhang.baidu.com/push.js';
      }
      var s = document.getElementsByTagName("script")[0];
      s.parentNode.insertBefore(bp, s);
  })();
</script>

  

<!----><!----></body></html>